获取树形结构通常使用的方法是递归查询,但是递归循环比较多,查询数据库比较频繁,性能还有代码都比较繁琐。

现我们可以使用引用复制的方法获取树结构。

实现代码如下,我们用菜单做实例。

list 只需要获取所以菜单就行。

Menu结构

MenuInfo是你前端返回的结构,使用框架有的需要结构字段固定,例如ElementUI tree 结构。

treeMenu方法实现如下

private List treeMenu(List

Map> childs = new HashMap<>();//便于快速查找

List res = new ArrayList<>();

for (Menu cate : list) {

MenuInfo categoryInfo = new MenuInfo(cate);

List child = null;

/*创建子节点*/

if ((child = childs.get(cate.getId())) == null) {

child = new ArrayList<>();

childs.put(cate.getId(),child);//便于快速查找

}

categoryInfo.setChildren(child);

/*父类*/

if ("0".equals(cate.getMenuPid())) {

res.add(categoryInfo);

}

/*子类*/

else {

//父类为空时,先将当前值缓存,等待父父类被初始化

if (childs.get(cate.getMenuPid()) == null) {

childs.put(cate.getMenuPid(),new ArrayList());

}

childs.get(cate.getMenuPid()).add(categoryInfo);

}

}

return res;

}

没错这样就行了,然后返回的就是你需要的树形结构,是不是很方便。

这个你也可以获取地区树形结构,级联结构都可以,参考ElementUI 级联组件。

java 树形数据_JAVA获取树形结构数据相关推荐

  1. java 网页数据_JAVA获取网页数据

    很多时候用到抓取网页数据的功能,以前工作中曾经用到过,今天总结了一下: 1.抓取网页数据通过指定的URL,获得页面信息,进而对页面用DOM进行 NODE分析,处理得到原始HTML数据,这样做的优势在于 ...

  2. java 生成树形结构_java 生成树形结构(极速版)

    树形结构是非常常见的数据结构,生成树形结构的方法比较常见的有递归,for循环,不管使用什么方法,如果能很好地利用内存来合理地添加树节点,则能极大提高效率 测试代码如下: public class Te ...

  3. java 迁移数据_Java 9迁移指南:七个最常见的挑战

    java 迁移数据 我敢肯定,您已经听说过更新到Java 9并不是一件容易的事,甚至可能是不兼容的更新,而且对于大型代码库而言,迁移毫无意义. 这样做之后,我迁移了一个相当大的旧代码库,我可以告诉你, ...

  4. java 静态数据_Java 静态数据初始化的示例代码

    无论创建多少个对象,静态数据都只占用一份存储区域.static关键字不能应用于局部变量,因此它只能作用于域.如果一个域是静态的基本类型域,且也没有对它进行初始化,那么它就会获得基本类型的标准初始值:如 ...

  5. java 迁移数据_Java 10迁移建议

    java 迁移数据 你好,再一次到另一个热点. 我的名字是Java Champions的平台工程师和DevOps专家Peter Pilgrim. 如您所知,Java 9引入了模块系统. 您可能正在将服 ...

  6. java 迁移数据_Java 10迁移:轻而易举还是龙卷风?

    java 迁移数据 "对于基础架构提供商而言,升级到最新的JDK根本不容易" Java 10是在几周前发布的,但我们仍在剖析其最重要的功能(*咳嗽*局部变量类型推断*咳嗽*)以及那 ...

  7. java 树形数据_JAVA处理树状结构数据

    之前对于树状结构的处理没什么困难,但是最近的一个需求就很麻烦.其实遍历出树状结构并不是什么困难的事情,但是这个需求需要从底层节点统计数量,然后向上修改所有的父级结构. 最难的地方就是这个地方,可能有的 ...

  8. java树形菜单_Java构建树形菜单

    构建树形菜单 效果图:支持多级菜单. 菜单实体类: public class Menu { // 菜单id private String id; // 菜单名称 private String name ...

  9. java读取word表格中的数据_JAVA获取word表格中数据的方案

    上一个项目的开发中需要实现从word中读取表格数据的功能,在JAVA社区搜索了很多资料,终于找到了两个相对最佳的方案,因为也得到了不少网友们的帮助,所以不敢独自享用,在此做一个分享. 两个方案分别是: ...

最新文章

  1. fft 相位谱_信号处理之功率谱原理与python实现
  2. 计算机项目管理报告,《软件项目管理》报告.doc
  3. java运行按钮在哪里_[tkinter按钮命令已在程序启动时运行
  4. java对象是 什么的集合_java持有对象-集合类
  5. 华为平板能运行python吗_我是如何使用华为平板的
  6. centos 一键安装ftp 配置_CentOS快速搭建FTP(初级-四步)
  7. Python Django URL逆向解析(通过模板页面逆向访问)代码示例
  8. Android -ui控件
  9. ncnn:提取所有层特征值
  10. 域名邮箱和邮件服务器
  11. 干货 | Python之自动化报表
  12. c语言 常量整数,C语言的整型常量
  13. 如何有效练习英语口语
  14. 《乱音盒子》之《隐者小调》
  15. 秦始皇焚书坑儒只因曾被算命先生忽悠?
  16. Ubuntu18.04修复grub引导
  17. 简单几步轻松查看手机生产日期,换屏哥上门维修喊你一起来学习
  18. SemanticKitti数据集的使用
  19. 查看表空间、schema和表空间下所有表相关理解
  20. python-nmap使用方法(python3)

热门文章

  1. “中国速度”出海东南亚——百世集团智慧物流走出国门
  2. 打包——在英语学习中同样重要
  3. 高德地图路径规划接口计算出发地与目的地的通行时间计算
  4. 普铁也全面实施电子客票啦
  5. python求协方差矩阵_用numpy计算协方差(covariance)
  6. 输入url到页面显示发生了什么?
  7. 电子数据取证之网络服务器
  8. ImageNet数据集用法
  9. Java并发编程(JUC)
  10. 【Qt学习之行】相机和音频录制