递归实现无限极菜单

简介: 递归实现无限极菜单
public List<Types> buildTree(List<Types> list) {
    //父级(总的)
    List<Types> typesList = new ArrayList<>();
    list.forEach(t -> {
        if (t.getParentId() == null || t.getParentId() == 0) {
            typesList.add(nodeTree(t, list));
        }
    });
    return typesList;
}
//types 父级的对象
public Types nodeTree(Types types, List<Types> list) {
    List<Types> typesList = new ArrayList<>();
    list.forEach(t -> {
        if (t.getParentId() != null && types.getId().equals(t.getParentId())) {
            typesList.add(nodeTree(t, list));
        }
    });
    types.setChildren(typesList);
    return types;
}
目录
相关文章
|
9月前
uniapp拖动排序实现思路
uniapp拖动排序实现思路
126 0
|
4月前
|
算法
循环嵌套思路详解 | 一个“在盒子里过家家”的算法 -- 以冒泡排序与打印菱形为例(一)
本文介绍了编程中的一种思想,通过菱形打印问题来阐述如何理解和使用循环嵌套。文章提到,初学者在面对循环结构时,可以通过先识别代码块的结束括号来理解整体结构,提高阅读效率。作者提出了“在盒子里过家家”的理解思路,将外层循环看作一个个盒子,内层循环视为盒子里的操作,弱化循环嵌套的概念,强调以盒子为单位思考问题。此外,文章还通过示例解释了内外循环的关系,帮助读者更好地理解循环控制和执行过程。
80 3
|
4月前
|
算法
循环嵌套思路详解 | 一个“在盒子里过家家”的算法 -- 以冒泡排序与打印菱形为例(二)
本文介绍了如何运用特定思路解析和解决编程问题,特别是涉及双层循环的情况。首先,通过一个打印特定图案的例子,解释了将“盒子”作为思考单位的概念,即分析问题中每个循环的作用和内容。接着,以冒泡排序为例,展示了如何将问题分解为外层循环(趟数)和内层循环(每趟的比较与交换),并通过盒子思路简化理解和实现代码。最后,提到了菱形打印的代码优化,鼓励读者思考并应用这种思维方式。总的来说,文章强调了自然地理解和运用循环结构,而不是机械地记忆。
53 2
|
4月前
使用递归的方式删除菜单
使用递归的方式删除菜单
22 1
|
4月前
|
JavaScript
什么是递归树状菜单
什么是递归树状菜单
|
4月前
|
算法
《剑指offer》之从上到下打印二叉树Ⅰ、Ⅱ、Ⅲ
《剑指offer》之从上到下打印二叉树Ⅰ、Ⅱ、Ⅲ
40 0
|
4月前
|
JSON 前端开发 Java
java 递归实现权限树(菜单树)
java 递归实现权限树(菜单树)
124 0
|
10月前
|
JSON JavaScript 前端开发
JS实现树形菜单递归函数(折叠菜单)
JS实现树形菜单递归函数(折叠菜单)
49 0
多入口BFS(上下左右)模板
多入口BFS(上下左右)模板
45 0
AcWing 747. 数组的左上半部分
AcWing 747. 数组的左上半部分
72 0
AcWing 747. 数组的左上半部分