java8 list转tree
时间: 2023-09-01 08:10:34 浏览: 49
抱歉,我可以回答这个问题。Java8中可以使用Stream API和Collectors工具类将List转换成Tree。具体方法可以参考以下代码:
```
public static <T extends TreeNode> List<T> buildTree(List<T> list) {
Map<Long, T> map = list.stream().collect(Collectors.toMap(TreeNode::getId, Function.identity()));
List<T> treeList = new ArrayList<>();
for (T node : list) {
if (node.getParentId() == null || node.getParentId() == 0) {
treeList.add(node);
continue;
}
T parent = map.get(node.getParentId());
if (parent != null) {
parent.getChildren().add(node);
}
}
return treeList;
}
```
其中TreeNode是一个接口,需要自己实现getId、getParentId和getChildren方法。这段代码会将list转换成树形结构,并返回根节点集合。