java对于树的构建

该博客介绍了一个Java实现的`TreeBuilder`类,用于将包含`Node`对象的列表转换为树结构。通过查找根节点,递归寻找子节点,并设置节点层级,将集合数据转化为树形结构。示例代码展示了如何创建并打印树结构。
摘要由CSDN通过智能技术生成
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; 
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值