/**
**将对象List<Map> nodes封装成树形接口
**parent:第一层级的标识
*/
//调用此方法
public List<Map> builTree(List<Map> nodes,String parent){
List<Map> roots = new ArrayList<>() ;
getRootNode(nodes,parent).forEach(o->{
Map node = buildChildern(o, nodes);
roots.add(node);
});
return roots;
}
public Map buildChildern(Map node, List<Map> nodes){
List<Map> children = new ArrayList<>();
if(node != null){
nodes.forEach((o)->{
//对象属性子集父级关联标识
if(o.get("xzdnParentid").equals(node.get("xzdnId"))){
children.add(buildChildern(o,nodes)); //递归调用
}
});
}
//子集存入的属性
node.put("childrenList",children);
return node;
}
public List<Map> getRootNode(List<Map> nodes,String parent){
List<Map> roots = new ArrayList<>();
nodes.forEach(o->{
//标志第一层级标识
if(o.get("xzdnParentid").equals(parent)){
roots.add(o);
}
});
return roots;
}
将List对象封装成树形结构
最新推荐文章于 2024-07-14 20:21:37 发布