1、普通写法【第一个参数是顶级的parentid,第二个参数是数据列表】

 /*** 递归获取子节点下的子节点* @param integer 父节点的ID* @param treesList 所有菜单树集合* @return*/private List<DepartmentInfoVo> getChildrenNode(String integer, List<DepartmentInfoVo> treesList) {List<DepartmentInfoVo> newTrees = new ArrayList<>();for (DepartmentInfoVo department : treesList) {if (StrUtil.isBlank(department.getDepartmentParentId())) {continue;}if (integer.equals(department.getDepartmentParentId())) {// 递归获取子节点下的子节点,即设置树控件中的childrendepartment.setChildren(getChildrenNode(department.getDepartmentId(), treesList));newTrees.add(department);}}return newTrees;}

2、hutool

 <!-- hutool工具 --><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.2</version></dependency>
 //配置TreeNodeConfig treeNodeConfig = new TreeNodeConfig();// 自定义属性名 都要默认值的treeNodeConfig.setWeightKey("menuSort");treeNodeConfig.setIdKey("menuId");treeNodeConfig.setParentIdKey("menuParentid");// 最大递归深度treeNodeConfig.setDeep(Convert.toInt(appMenuSelectDto.getMenuDepth()));//转换器List<Tree<String>> treeNodes = TreeUtil.build(appMenuList, "0", treeNodeConfig,(treeNode, tree) -> {tree.setId(treeNode.getMenuId());tree.setParentId(treeNode.getMenuParentid());tree.setWeight(treeNode.getMenuSort());tree.setName(treeNode.getMenuName());// 扩展属性 ...tree.putExtra("value", treeNode.getMenuName());tree.putExtra("label", treeNode.getMenuId());});

两种写法出来效果一样

java展示树形结构的两种方式相关推荐

  1. Java中HashMap遍历的两种方式

    第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...

  2. java读取csv文件的两种方式

    java读取csv文件的两种方式 1.CsvReader读取 import com.csvreader.CsvReader; /*** CsvReader 读取* @param filePath* @ ...

  3. Java判断回文数(两种方式)

    Java判断回文数(两种方式) 回文数是一个非常特殊的数,它从左边读和从右边读是一样的.例如12321 判断方式有两种. 方式一:对该数字进行分解,然后一一比对,拆解成 1 2 3 2 1,然后第一位 ...

  4. Java中实现多线程的两种方式之间的区别

    Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线 ...

  5. java中实现同步的两种方式:syschronized和lock的区别和联系

    转载自 http://www.cnblogs.com/xiohao/p/4151408.html Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用s ...

  6. java jobdetail_Spring创建JobDetail的两种方式

    一.Spring创建JobDetail的两种方式 定时任务两种方式,Spring很好的封装使用Quartz的细节,第一种方式是利用SPring封装的Quartz类进行特定方法的实现,第二种是通过透明的 ...

  7. Java中Http连接的两种方式

    在java中连接http,介绍两种方法,一种是java的HttpUrlConnection,另一种是apacha公司的httpClient,后者是第三方的类库需要从外部,导入,同时这也是第一次使用外部 ...

  8. MySQL入门--显示表结构的两种方式

    显示表的字段名,字段数据类型,字段约束情况,存储引擎,默认字符编码集,有以下两种方式.  方式1 SHOW COLUMNS FROM <表名>;= DESC <表名>; 方式2 ...

  9. java操作excel常用的两种方式

    转载自:https://www.cnblogs.com/wangyang108/p/6030420.html Excel是我们平时工作中比较常用的用于存储二维表数据的,JAVA也可以直接对Excel进 ...

最新文章

  1. 易点租加速电脑租赁市场布局
  2. QIIME 2用户文档. 11元数据Metadata(2019.7)
  3. CORDIC算法——圆周系统之旋转模式
  4. C++11实战——多线程的日志类
  5. 分模块开发创建父工程——(六)
  6. 约瑟夫环c语言程序完整版,C语言:约瑟夫环问题(源代码)
  7. 2019最新《网易云课堂 C++收银系统项目实战教程》 C++开发网吧收银系统(MFC+ADO)
  8. mysql5.0免安装版_MySql5.0免安装版配置
  9. OEM JDM ODM OBM的区别
  10. 组织架构与中台建设,回顾阿里小米京东美团四大商业巨头的战略变迁
  11. 我也来谈谈《我不是药神》这部电影
  12. java中sof是什么意思_SOF是什么意思
  13. dmg是什么文件格式_什么是DMG文件(以及我该如何使用)?
  14. python 使用sk_learn :ValueError: Expected 2D array, got 1D array instead
  15. 友价商城破解版问题解答 附加最新商城2018仿友价T5商城源码系5月310日更新
  16. 18春计算机应用基础在线答案,南开18春《计算机应用基础》在线作业答案.doc
  17. 华为ENSP之防火墙双机热备
  18. java雪花_基于java实现的雪花算法
  19. PHP 运行方式详解
  20. 嘉为蓝鲸荣获广东省电子政务与新型智慧城市发展大会表彰

热门文章

  1. 软件测试(白盒测试与黑盒测试)
  2. 以前写的破代码,不忍心扔
  3. 申请GOOGLE的企业邮局
  4. js仿google+分享新鲜事系统实例源码
  5. c# 收取邮件 解析_c#接收邮件
  6. PS后期合成深海海底水下人像摄影效果
  7. 【菜鸟窝阿里算法专家Chris】当机会出现时,多一种武器,就多一分机会。
  8. 微信内置浏览器无法下载app(Android/ios)软件 微信内下载链接打不开的解决方法
  9. 数据库系统概念-第六版 - charter 1 - 笔记
  10. python中geometry_tkinter窗口geometry函数的使用