首页 > 其他 > 详细

list转化成tree

时间:2021-01-20 23:22:40      阅读:24      评论:0      收藏:0      [点我收藏+]
/**
* 栏目列表转成树结构
*
* @param list
* @return
*/
private static List<SysDict> listToTree(List<SysDict> list,Long id) {
if (list == null || list.isEmpty()) {
return list;
}
Map<Long, SysDict> sysDictMap = list.stream()
.collect(Collectors.toMap(SysDict::getId, Function.identity()));
// 树的顶层栏目
SysDict root= new SysDict();
sysDictMap.put(id, root);
list.forEach(sysDict -> {
Long pid = sysDict.getPid();
SysDict parent = sysDictMap.get(pid);
if (parent == null) {
log.error("上层栏目分类不存在: {}", JSONUtil.toJsonStr(sysDict));
return;
}
List<SysDict> children = parent.getChildren();
// 初始化子层级
if (children == null) {
children = new ArrayList<>();
parent.setChildren(children);
}
children.add(sysDict);
});
return root.getChildren();
}

list转化成tree

原文:https://www.cnblogs.com/tank073/p/14304582.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!