首页 > 其他分享 >递归函数-树形列表

递归函数-树形列表

时间:2024-03-11 16:36:01浏览次数:13  
标签:SysDept 递归函数 tChild List list 列表 树形 childList 节点

基本思想

根据根节点没有父节点原理找到父节点;

根据子节点的父id找到根节点所有的子节点;

递归遍历父节点的所有子节点;

 

    private void recursionFn(List<SysDept> list, SysDept t)
    {
        // 得到子节点列表
        List<SysDept> childList = getChildList(list, t);
        t.setChildren(childList);
        for (SysDept tChild : childList)
        {
            if (hasChild(list, tChild))
            {
                recursionFn(list, tChild);
            }
        }
    }

 

private List<SysDept> getChildList(List<SysDept> list, SysDept t)
    {
        List<SysDept> tlist = new ArrayList<SysDept>();
        Iterator<SysDept> it = list.iterator();
        while (it.hasNext())
        {
            SysDept n = (SysDept) it.next();
            // 子节点的父id
            if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getDeptId().longValue())
            {
                tlist.add(n);
            }
        }
        return tlist;
    }

 

标签:SysDept,递归函数,tChild,List,list,列表,树形,childList,节点
From: https://www.cnblogs.com/ReturnOfTheKing/p/18066389

相关文章

  • Android 《回到桌面与切换到任务列表》
    App不但能监测手机屏幕的方向变更,还能获知回到桌面的事件,连打开任务列表的事件也能实时得知。回到桌面与打开任务列表都由按键触发,例如按下主页键会回到桌面,按下任务键会打开任务列表。虽然这两个操作看起来属于按键事件,但系统并未提供相应的按键处理方法,而是通过广播发出事件信......
  • 淘宝订单AP I淘宝订单数据接口 获取商品订单列表 获取商品订单详情
    淘宝订单API是淘宝开放平台提供的一组接口,允许开发者获取淘宝或天猫的订单数据,包括订单列表和订单详情。要使用这些API,你需要遵循一定的步骤来获取并接入这些接口。以下是获取淘宝订单数据的基本步骤:注册并创建应用首先,你需要在淘宝开放平台注册账号,并创建一个应用。创建应用......
  • VB.NET 在DataGridview 动态添加下拉列表控件DataGridViewComboBoxColumn要点两次才可
     DataGridview属性EditMode设为EditOnEnter 添加如下事件代码PrivateSubdgvZhiJianXiangMu_CellClick(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.DataGridViewCellEventArgs)HandlesdgvZhiJianXiangMu.CellClickIfe.ColumnIndex>=0AndAls......
  • Python中判定列表是否包含某个元素的方法
    大家好,我是彭涛,今天为大家分享Python中判定列表是否包含某个元素的方法,全文4000字,阅读大约10分钟。在Python编程中,判定一个列表是否包含特定元素是一项常见任务。本文将深入研究各种方法,从基本的成员运算符到更高级的函数和库的应用,为大家提供全方位的指南和实用示例。1.成......
  • 散列表
    散列表  概要  散列表也叫哈希表(hashtable),是存储Key-Value映射的集合。对于某一个Key,散列表可以在接近O(1)的时间内进行读写操作。  散列表通过哈希函数实现Key和数组下标的转换,每个键值对都会通过哈希函数计算出一个索引,然后存储在对应的位置上。通过开放寻址法和......
  • Python list列表pop弹出内容del移除内容结果不对错误
    前言全局说明Pythonlist列表pop弹出内容del移除内容结果不对一、功能需求一个list列表,内容是1-9,用for循环打印,打印过的值,从列表中删除二、输出结果不对,代码有问题文件名:test.py#!/usr/bin/envpython3#coding:UTF-8#-*-coding:UTF-8-*-lists_1=['a','b']......
  • ems-jsp 职工列表功能
    1.思路简单的一个数据库查询所有,将数据放入list列表,通过spring提供的model传入到前端页面。2.代码controller:/**员工列表**/@RequestMapping("list")publicStringlistEmployee(HttpServletRequestrequest,Modelmodel){List<Employ......
  • Axure中继器高阶玩法-列表的增删改查
    1.效果展示2.实现步骤设计原理:新增修改时,对新增或标记的内容,插入中继器中,列表再展示中继器内的内容2.1.前提步骤●页面及样式设计,如下。建立查询条件、查询框、按钮、新增/修改/删除弹窗(最好是用一个动态面板完成,这样弹窗位置固定且页面展示有条理不会显得臃肿)、列表名、列表......
  • Educational Codeforces Round 162 E 点分治 虚树 树形dp
    传送门给出\(n\le2\cdot10^5\)的一棵树,每个节点有一个颜色。求出路径长度为\(2\)路径首端和尾端拥有相同颜色,且路径上其他点不存在相同颜色的点的路径条数。当时看错题了,把颜色抽出来后没法做了。后来感觉能点分治,然后把题看对了,遂写了一个极其抽象的点分治。除此之外,把某......
  • 使用 Java 在Excel中创建下拉列表
    下拉列表(下拉框)可以确保用户仅从预先给定的选项中进行选择,这样不仅能减少数据输入错误,还能节省时间提高效率。在MSExcel中,我们可以通过“数据验证”提供的选项来创建下拉列表,但如果要在Java程序中通过代码实现这一功能,可能需要借助一些第三方库。本文将分享两种使用免费Java库......