public static List<SysProjectEntity> initTreeNodeList(List<SysProjectEntity> list,Long root){
if(list.size() <= 0){
return null;
}
Map<Long,SysProjectEntity> map = getTreeMap(list,root);
if(map.size() == 0){
return null;
}
List<SysProjectEntity> roots = new ArrayList<>();
Iterator<SysProjectEntity> iter = map.values().iterator();
SysProjectEntity treeNode = null;
while(iter.hasNext()){
treeNode = iter.next();
if(treeNode.getParentId() == 0 ||treeNode.getParentId().equals(root)){
roots.add(treeNode);
}
}
return roots;
}
private static Map<Long,SysProjectEntity> getTreeMap(List<SysProjectEntity > list,Long root){
Long aLong = new Long(1);
Map<Long,SysProjectEntity> map = new HashMap<Long, SysProjectEntity>();
list.forEach(o->map.put(o.getId(),o));
Iterator<SysProjectEntity> iter = map.values().iterator();
while(iter.hasNext()){
SysProjectEntity node = iter.next();
if(node.getParentId() == 0||node.getParentId().equals(root)){
continue;
}
SysProjectEntity parentNode = map.get(node.getParentId());
if(!StringUtils.isEmpty(parentNode)){
if(aLong.compareTo(node.getType())==0)parentNode.getChildren().add(node);
else parentNode.getChilds().add(node);
}
}
return map;
}
List 非遞歸組無限節點 樹(Tree)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.