构建树结构
思路 整个过程需要知道顶级节点的特征 两层循环为每个节点找到子节点 找出顶级节点的集合 示例:
java
private List<MsgVo> buildTree(List<MsgVo> list) {
if (list == null || list.size() == 0) {
return new ArrayList<>();
}
for (MsgVo parent : list) {
Integer id = parent.getId();
for (MsgVo child : list) {
if(id.equals(child.getParentId())){
//初始化子节点集合
if(parent.getChildren() == null){
parent.setChildren(new ArrayList<>());
}
parent.getChildren().add(child);
}
}
}
//获取顶级节点
List<MsgVo> trees = list.stream()
.filter(item -> item.getParentId().equals(0))
.collect(Collectors.toList());
return trees;
}