使用Java将一个List运用递归转成树形结构案例

2025-05-29 0 55

在开发中,我们会遇到将不同组织架构合并成tree这种树状结构,那么如果做呢?
实际上,我们也可以理解为如何将拥有父子关系的list转成树形结构,而这其中主要的方法就是递归

1、实体对象:

  1. @Data
  2. public class Node {
  3. private Integer id;
  4. private String city;
  5. private Integer pid;
  6. private List<Node> children;
  7. public Node(Integer id,String city,Integer pid){
  8. this.id = id;
  9. this.city = city;
  10. this.pid = pid;
  11. }
  12. }

2、转换工具类:

  1. public class TreeUtils {
  2. //把一个List转成树
  3. static List<Node> buildTree(List<Node> list,Integer pid){
  4. List<Node> tree=new ArrayList<>();
  5. for(Node node:list){
  6. if(Objects.equals(node.getPid(),pid)){
  7. tree.add(findChild(node,list));
  8. }
  9. }
  10. return tree;
  11. }
  12. static Node findChild(Node node, List<Node> list){
  13. for(Node n:list){
  14. if(Objects.equals(n.getPid(),node.getId())){
  15. if(node.getChildren() == null){
  16. node.setChildren(new ArrayList<Node>());
  17. }
  18. node.getChildren().add(findChild(n,list));
  19. }
  20. }
  21. return node;
  22. }
  23. public static void main(String[] args) {
  24. Node node0=new Node(0,"中国",-1);
  25. Node node1=new Node(1,"湖北省",0);
  26. Node node2=new Node(2,"武汉市",1);
  27. Node node3=new Node(3,"洪山区",2);
  28. Node node4=new Node(4,"宜昌市",1);
  29. Node node5=new Node(5,"上海市",0);
  30. Node node6=new Node(6,"静安区",5);
  31. List<Node> list=new ArrayList<>();
  32. list.add(node3);
  33. list.add(node4);
  34. list.add(node1);
  35. list.add(node2);
  36. list.add(node5);
  37. list.add(node6);
  38. list.add(node0);
  39. List<Node> nodes = buildTree(list,-1);
  40. System.out.println(JSON.toJSONString(nodes));
  41. }
  42. }

3、运行结果:

使用Java将一个List运用递归转成树形结构案例

这样list就成功转换成为了tree装结构

到此这篇关于使用Java将一个List运用递归转成树形结构案例的文章就介绍到这了,更多相关Javalist运用成树形结构内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!

原文链接:https://blog.csdn.net/weixin_36586564/article/details/117918287

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 使用Java将一个List运用递归转成树形结构案例 https://www.kuaiidc.com/105321.html

相关文章

发表评论
暂无评论