使⽤Java将⼀个List运⽤递归转成树形结构案例
在开发中,我们会遇到将不同组织架构合并成tree这种树状结构,那么如果做呢?
实际上,我们也可以理解为如何将拥有⽗⼦关系的list转成树形结构,⽽这其中主要的⽅法就是递归!
1、实体对象:
@Data
public class Node {
private Integer id;
private String city;
private Integer pid;
private List<Node> children;
public Node(Integer id,String city,Integer pid){
this.id = id;
this.city = city;
this.pid = pid;
}
}
2、转换⼯具类:
public class TreeUtils {
//把⼀个List转成树
static List<Node> buildTree(List<Node> list,Integer pid){
List<Node> tree=new ArrayList<>();
for(Node node:list){
if(Objects.Pid(),pid)){
tree.add(findChild(node,list));
}
}
return tree;
}
static Node findChild(Node node, List<Node> list){
for(Node n:list){
if(Objects.Pid(),Id())){
Children() == null){
node.setChildren(new ArrayList<Node>());
}
}
}
return node;
}
public static void main(String[] args) {
Node node0=new Node(0,"中国",-1);
Node node1=new Node(1,"湖北省",0);
Node node2=new Node(2,"武汉市",1);
Node node3=new Node(3,"洪⼭区",2);
Node node4=new Node(4,"宜昌市",1);
Node node5=new Node(5,"上海市",0);
Node node6=new Node(6,"静安区",5);
List<Node> list=new ArrayList<>();
list.add(node3);
nodejs字符串转数组list.add(node4);
list.add(node1);
list.add(node2);
list.add(node5);
list.add(node6);
list.add(node0);
List<Node> nodes = buildTree(list,-1);
System.out.JSONString(nodes));
}
}
3、运⾏结果:
这样list就成功转换成为了tree装结构
到此这篇关于使⽤Java将⼀个List运⽤递归转成树形结构案例的⽂章就介绍到这了,更多相关Java将list运⽤成树形结构内容请搜
索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。