您好,欢迎来到世旅网。
搜索
您的当前位置:首页java利用stream去构建树形结构数据

java利用stream去构建树形结构数据

来源:世旅网

首先构建一个树形的实体类

@Data
public class SalaryNodeTreeVo {

    /*结点父类id*/
    private Integer parentId;

    /*结点名称*/
    private String nodeName;

    /*当前节点id*/
    private Integer nodeId;

    /*孩子结点list*/
    private List<SalaryNodeTreeVo> children;

}

然后利用stream去构建树(parentId为0的即为根节点)

    private List<SalaryNodeTreeVo> buildTree(List<SalaryNodeTreeVo> nodes) {
        Map<Integer, List<SalaryNodeTreeVo>> children = nodes.stream().filter(node -> node.getParentId() != 0)
                .collect(Collectors.groupingBy(node -> node.getParentId()));
        nodes.forEach(node -> node.setChildren(children.get(node.getNodeId())));
        return nodes.stream().filter(node -> node.getParentId() == 0).collect(Collectors.toList());
    }

这样返回的出参既是一个树形结构。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- esig.cn 版权所有 湘ICP备2023023988号-3

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务