Java 8 stream 树形数据结构整理

public class TreeUtil {
    public static List<Node> buildTree(List<Node> nodes) {
        Map<Integer, List<Node>> sub = nodes.stream().filter(node -> node.getPid() != 0).collect(Collectors.groupingBy(node -> node.getPid()));
        nodes.forEach(node -> node.setSub(sub.get(node.getId())));
        return nodes.stream().filter(node -> node.getPid() == 0).collect(Collectors.toList());
    }
}

 

posted @ 2022-02-24 17:15  Bevis  阅读(627)  评论(0编辑  收藏  举报