首先构建一个树形的实体类
@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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务