1. 一,bean的类型:
  1. public class DeptListRES {
  2.  
  3. /**
    * 子节点
    */
    private List<DeptListRES> children;
  4.  
  5. private Integer id;
  6.  
  7. /**
    * 部门编码
    */
    private String deptNo;
  8.  
  9. /**
    * 部门名称
    */
    private String deptName;
  10.  
  11. /**
    * 部门分类,对应字典表dept_type
    */
    private String deptType;
  12.  
  13. /**
    * 全名
    */
    private String fullName;
  14.  
  15. private Integer parentId;
  16.  
  17. /**
    * 所有的父id
    */
    private String parentIds;
  18.  
  19. /**
    * 本级排序号
    */
    private Integer treeSort;
  20.  
  21. /**
    * 所有级别排序号
    */
    private String treeSorts;
  22.  
  23. /**
    * 是否子节点
    */
    private String treeLeaf;
  24.  
  25. }
  1. 2.通过数据库查询出list列表,调用方法转化为树状结构
  1. List<DeptListRES> depts = deptMapper.list(params);
  1. return formatter(depts);
  1.  
  2. /**
    * 将list转化为树状结构
    *
    * @param list
    * @return
    */
    public List<DeptListRES> formatter(List<DeptListRES> list) {
    Map<Integer, DeptListRES> map = new HashMap<Integer, DeptListRES>();
    for (DeptListRES pt : list) {
    //将集合添加进map,key为id,值为对象
    map.put(pt.getId(), pt);
    }
    return getChild(list, map);
    }
  3.  
  4. /**
    * 创建树形结构
    *
    * @param childL
    * @param map
    * @return
    */
    private List<DeptListRES> getChild(List<DeptListRES> childL, Map<Integer, DeptListRES> map) {
    //返回的对象
    List<DeptListRES> par = new ArrayList<>();
    for (DeptListRES deptListRES : childL) {
    //获取父节点
    DeptListRES dt = map.get(deptListRES.getParentId());
    //父节点存在,就在父节点里面添加子节点(利用list里面的对象,和map里面的值得对象为同一个来修改children)
    if (dt != null) {
    if (dt.getChildren() == null) {
    dt.setChildren(new ArrayList<>());
    }
    dt.getChildren().add(deptListRES);
    } else {
    //添加父节点
    par.add(deptListRES);
    }
    }
    return par;
    }

将lits集合转化为树状结构的更多相关文章

  1. java集合树状结构及源码

    java集合树状结构及源码 最近一直想看一下java集合的源码,毕竟平时用的比较多,但总是感觉是跟着习惯new出来一个对象,比如ArrayList,HashMap等等,所以就简单的看了一下,了解了一下 ...

  2. 树状结构Java模型、层级关系Java模型、上下级关系Java模型与html页面展示

    树状结构Java模型.层级关系Java模型.上下级关系Java模型与html页面展示 一.业务原型:公司的组织结构.传销关系网 二.数据库模型 很简单,创建 id 与 pid 关系即可.(pid:pa ...

  3. 分享使用NPOI导出Excel树状结构的数据,如部门用户菜单权限

    大家都知道使用NPOI导出Excel格式数据 很简单,网上一搜,到处都有示例代码. 因为工作的关系,经常会有处理各种数据库数据的场景,其中处理Excel 数据导出,以备客户人员确认数据,场景很常见. ...

  4. 由简入繁实现Jquery树状结构

    在项目中,我们经常会需要一些树状结构的样式来显示层级结构等,比如下图的样式,之前在学.net的时候可以直接拖个服务端控件过来直接使用非常方便.但是利用Jquery的一些插件,也是可以实现这些效果的,比 ...

  5. php实现树状结构无级分类

    php实现树状结构无级分类   ).",'树2-1-1-2')";mysql_query($sql);?>

  6. Android无限级树状结构

    通过对ListView简单的扩展.再封装,即可实现无限层级的树控件TreeView. package cn.asiontang.nleveltreelistview; import android.a ...

  7. 使用Map辅助拼装树状结构,消除递归调用

    目前菜单或其他树状结构在数据库中的存储,多数是以一个parentid作为关联字段,以一维形式存储.使用时全部查询出来,然后在内存中拼装成树状结构.现在主要涉及的是拼装方法的问题. 一般可以进行 递归调 ...

  8. lua 怎样输出树状结构的table?

    为了让游戏前端数据输出更加条理,做了一个简单树状结构来打印数据. ccmlog.lua local function __tostring(value, indent, vmap) local str ...

  9. js List<Map> 将偏平化的数组转为树状结构并排序

    数据格式: [ { "id":"d3e8a9d6-e4c6-4dd8-a94f-07733d3c1b59", "parentId":&quo ...

随机推荐

  1. Delphi提取PDF文本

    生成PDF的控件很多,但解析的不是太多,pdf Toolkit可以,但测试的第一个复杂的pdf就报告错误,并且汉字乱码,可能使用的版本或使用方法不对. 想起之前使用java调用的Apache名下的pd ...

  2. ffmpeg 、Vlc参数

    ffmpeg.exe -loglevel error -probesize 32 -vsync passthrough -framerate 20 -f gdigrab -i desktop -fil ...

  3. Jquery Post提交时Content-Type的不同取值详解

    四种常见的 POST 提交数据方式 我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范.规范把 HTTP 请求分为三个部分:状态行.请求头.消息主体.类似于下 ...

  4. 检查linux的磁盘空间占用

    先初步看看哪个目录占用最大$ df -h 然后细看遍历某目录的占用情况:$ sudo du -a /data  | sort -nr | less(单位是KB)

  5. mybatis 映射器(mappers) 配置说明 加载映射文件方式

    映射器(mappers) 既然 MyBatis 的行为已经由上述元素配置完了,我们现在就要定义 SQL 映射语句了.但是首先我们需要告诉 MyBatis 到哪里去找到这些语句. Java 在自动查找这 ...

  6. mysql密码的坑

    一段时间没用本机的mysql,忘了root密码,从网上找的修改方法用起来大多都有问题.mysql版本8.0.12. 网上大多数思路:修改msql启动方式为带--skip-grant-tables参数: ...

  7. C语言 结构体(联合体)对齐规则

    /* 结构体(联合体)对齐规则 */ #include <stdio.h> #include <stdlib.h> #include <string.h> /* * ...

  8. laravel5.8笔记四:路由

    laravel框架,必须先设置路由,才可以访问内部的控制器部分. 路由文件:routes/web.php. 基本路由 Route::get('/user', 'UserController@index ...

  9. jQuery UI =>jquery-ui.js中sortable方法拖拽对象位置偏移问题

    今天要处理sortable方法处理的对象,拖拽的时候,位置偏移的问题. 按理应该是鼠标在哪,对象就跟着在哪的 百度了一下问题,http://blog.csdn.net/samed/article/de ...

  10. Failed while changing version of Java to 1.8.

    在使用eclipse导入一个新的项目时,项目-->鼠标右键-->Properties 弹出框中修改Project Facets为1.8时,eclipse报错,错误信息如下: <spa ...