获取某个父节点下面的所有子节点(递归查询)

1.创建一个list集合,集合里面包括父节点和子节点

 //创建一个list集合,集合里面包括所有父节点和子节点
 public static void main(String args[]) {
        List<Map<String,Object>> menuList = new ArrayList<>();
        Map<String,Object> mu = new HashMap<>();
        mu.put("col1","mblu1589348220464");//子节点1
        mu.put("col2","目录2");//子节点2
        mu.put("parentId","mblu1589348218105");//父节点
        Map<String,Object> mu1 = new HashMap();
        mu1.put("col1","mblu1589348220912");
        mu1.put("col2","目录3");
        mu1.put("parentId","mblu1589348218105");
        Map<String,Object> mu2 = new HashMap();
        mu2.put("col1","mblu1589348223843");
        mu2.put("col2","目录4");
        mu2.put("parentId","mblu1589348220464");
        Map<String,Object> mu3 = new HashMap();
        mu3.put("col1","mblu1589348224014");
        mu3.put("col2","目录5");
        mu3.put("parentId","mblu1589348220464");
        Map<String,Object> mu4 = new HashMap();
        mu4.put("col1","mblu1589348225870");
        mu4.put("col2","目录6");
        mu4.put("parentId","mblu1589348223843");
        menuList.add(mu);
        menuList.add(mu1);
        menuList.add(mu2);
        menuList.add(mu3);
        menuList.add(mu4);

        List<Map<String,Object>> childList = treeMenuList(menuList, "mblu1589348223843");
        childList.forEach(m->{
            System.out.println(m.get("col1") + "   " + m.get("col2"));
        });
    }

  //子节点
    static List<Map<String,Object>> childMenu = new ArrayList();

2.获取某个父节点下面的所有子节点

public static List<Map<String,Object>> treeMenuList(List<Map<String,Object>> menuList, String pid) {
        menuList.forEach(mu->{
            //遍历出父id等于参数的id,add进子节点集合
            if (mu.get("parentId").toString().equals(pid)) {
                //递归遍历下一级
                treeMenuList(menuList, mu.get("col1").toString());
                childMenu.add(mu);
            }
        });
        return childMenu;
    }

运行结果如下:
mblu1589348225870 目录6

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在JavaScript中,我们可以通过遍历树结构来获取某个节点下的所有节点下面是一个使用归方法来实现的示例代码: ```javascript // 定义树结构数据 var data = [ { id: 1, name: '节点1', children: [ { id: 2, name: '节点1-1', children: [] }, { id: 3, name: '节点1-2', children: [ { id: 4, name: '节点1-2-1', children: [] }, { id: 5, name: '节点1-2-2', children: [] } ] } ] }, { id: 6, name: '节点2', children: [] }, { id: 7, name: '节点3', children: [] } ]; // 定义函数来获取指定节点下的所有节点 function getChildren(parentNode, result) { for (var i = 0; i < parentNode.children.length; i++) { var childNode = parentNode.children[i]; result.push(childNode); // 将节点添加到结果数组中 if (childNode.children.length > 0) { getChildren(childNode, result); // 归调用获取节点节点 } } } // 调用函数来获取指定节点下的所有节点 var parentId = 1; // 指定节点的id var parent = data.find(node => node.id === parentId); // 找到指定的节点 var children = []; // 用于存储节点的结果数组 getChildren(parent, children); console.log(children); // 输出结果:[{ id: 2, name: '节点1-1', children: [] }, { id: 3, name: '节点1-2', children: [...] }, { id: 4, name: '节点1-2-1', children: [] }, { id: 5, name: '节点1-2-2', children: [] }] ``` 以上代码中,我们首先定义了一个包含树结构的数据数组。然后,我们通过定义一个`getChildren`函数,使用归的方式遍历树结构,从指定的节点开始获取所有节点。最后,我们调用这个函数来获取指定节点下的所有节点,并将结果存储在一个数组中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值