TreeBuilder.java
840 字节
package com.skua.tool.util;
import com.skua.modules.common.vo.TreeNodeVO;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @auther kangwei
* @create 2025-01-15-10:07
*/
public class TreeBuilder {
//构建树结构
public static List<TreeNodeVO> buildTree(List<TreeNodeVO> nodes) {
Map<String, TreeNodeVO> nodeMap = nodes.stream().collect(Collectors.toMap(TreeNodeVO::getId, node -> node));
List<TreeNodeVO> roots = new ArrayList<>();
TreeNodeVO parent = null;
for (TreeNodeVO node : nodes) {
parent = nodeMap.get(node.getParentId());
if (parent != null) {
parent.addChild(node);
} else {
roots.add(node);
}
}
return roots;
}
}