package tree;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.collections.CollectionUtils;
public class TreeBuilder {
/**
* 将集合建立成树结构
*
* @param dirs
* @return
*/
@SuppressWarnings("unchecked")
private List<Node> buildListToTree(List<Node> dirs) {
List<Node> roots = findRoots(dirs);
List<Node> notRoots = (List<Node>) CollectionUtils.subtract(dirs, roots);
for (Node root : roots) {
root.setChildren(findChildren(root, notRoots));
}
return roots;
}
/**
* 找出集合中的根元素
*
* @param allDirs
* @return
*/
public List<Node> findRoots(List<Node> allNodes) {
List<Node> results = new ArrayList<Node>();
for (Node node : allNodes) {
boolean isRoot = true;
java对于树的构建
最新推荐文章于 2024-07-30 21:12:55 发布
该博客介绍了一个Java实现的`TreeBuilder`类,用于将包含`Node`对象的列表转换为树结构。通过查找根节点,递归寻找子节点,并设置节点层级,将集合数据转化为树形结构。示例代码展示了如何创建并打印树结构。
摘要由CSDN通过智能技术生成