Skip to content

构建树结构

思路 整个过程需要知道顶级节点的特征 两层循环为每个节点找到子节点 找出顶级节点的集合 示例:

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;
}

Last updated:

开发者笔记仓库