Java中怎样加载一个树状结构对象/集合

在Java中处理一个具有父子关系的集合,将其转换为树状结构对象。通过创建具有id、parentId和children属性的对象,并进行两层循环遍历,查找并组织子节点。当找到父节点时,将其添加到对应的children列表中。若未找到父节点,则该元素视为根节点,存入目标集合。示例中,为了适配前端EasyUI的tree,将集合转换为MenuJson类型,最终结果可进一步转化为JSON字符串。
摘要由CSDN通过智能技术生成

    现在有一个集合,集合中的元素具有“父子”关系,即子类的parentId是父类的id。但是这些数据不是严格按照父级子集的树状结构排列,需要在程序中处理一下。

    基本思路:

        1)需要一个特定结构的对象(有id、parentId、children属性,children是一个自身类型的集合),如果源集合(下文中将上面提到的集合统称为源集合)不满足这一结构,需要转换一下;

        2)将这个集合进行两套循环,即内层循环和外层循环。在内层循环中依次查找外层循环中每一个元素的父节点,如果找到了就将其放入外循环的children中,第一次放入children中时,需要先创建children集合,第二次第三次以后放的时候取出此children放入就行。如果没有找到父类,说明它是个根节点,将这个元素放入最先定义的一个目标集合中。

    下面给出一个例子,例子中加入的一点个性化的修改,不过大体思路和上面说的一样:

 

//创建menu树
public List<MenuJson> createMenuTree(List<Menu> menuList) {
        List<MenuJson> result = new ArrayList<>();
        List<MenuJson> targetList = convert2MJ(menuList);
        for (MenuJson mj1 : targetList)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值