java 树形数据_JAVA获取树形结构数据
获取树形结构通常使用的方法是递归查询,但是递归循环比较多,查询数据库比较频繁,性能还有代码都比较繁琐。
现我们可以使用引用复制的方法获取树结构。
实现代码如下,我们用菜单做实例。
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获取树形结构数据相关推荐
- java 网页数据_JAVA获取网页数据
很多时候用到抓取网页数据的功能,以前工作中曾经用到过,今天总结了一下: 1.抓取网页数据通过指定的URL,获得页面信息,进而对页面用DOM进行 NODE分析,处理得到原始HTML数据,这样做的优势在于 ...
- java 生成树形结构_java 生成树形结构(极速版)
树形结构是非常常见的数据结构,生成树形结构的方法比较常见的有递归,for循环,不管使用什么方法,如果能很好地利用内存来合理地添加树节点,则能极大提高效率 测试代码如下: public class Te ...
- java 迁移数据_Java 9迁移指南:七个最常见的挑战
java 迁移数据 我敢肯定,您已经听说过更新到Java 9并不是一件容易的事,甚至可能是不兼容的更新,而且对于大型代码库而言,迁移毫无意义. 这样做之后,我迁移了一个相当大的旧代码库,我可以告诉你, ...
- java 静态数据_Java 静态数据初始化的示例代码
无论创建多少个对象,静态数据都只占用一份存储区域.static关键字不能应用于局部变量,因此它只能作用于域.如果一个域是静态的基本类型域,且也没有对它进行初始化,那么它就会获得基本类型的标准初始值:如 ...
- java 迁移数据_Java 10迁移建议
java 迁移数据 你好,再一次到另一个热点. 我的名字是Java Champions的平台工程师和DevOps专家Peter Pilgrim. 如您所知,Java 9引入了模块系统. 您可能正在将服 ...
- java 迁移数据_Java 10迁移:轻而易举还是龙卷风?
java 迁移数据 "对于基础架构提供商而言,升级到最新的JDK根本不容易" Java 10是在几周前发布的,但我们仍在剖析其最重要的功能(*咳嗽*局部变量类型推断*咳嗽*)以及那 ...
- java 树形数据_JAVA处理树状结构数据
之前对于树状结构的处理没什么困难,但是最近的一个需求就很麻烦.其实遍历出树状结构并不是什么困难的事情,但是这个需求需要从底层节点统计数量,然后向上修改所有的父级结构. 最难的地方就是这个地方,可能有的 ...
- java树形菜单_Java构建树形菜单
构建树形菜单 效果图:支持多级菜单. 菜单实体类: public class Menu { // 菜单id private String id; // 菜单名称 private String name ...
- java读取word表格中的数据_JAVA获取word表格中数据的方案
上一个项目的开发中需要实现从word中读取表格数据的功能,在JAVA社区搜索了很多资料,终于找到了两个相对最佳的方案,因为也得到了不少网友们的帮助,所以不敢独自享用,在此做一个分享. 两个方案分别是: ...
最新文章
- fft 相位谱_信号处理之功率谱原理与python实现
- 计算机项目管理报告,《软件项目管理》报告.doc
- java运行按钮在哪里_[tkinter按钮命令已在程序启动时运行
- java对象是 什么的集合_java持有对象-集合类
- 华为平板能运行python吗_我是如何使用华为平板的
- centos 一键安装ftp 配置_CentOS快速搭建FTP(初级-四步)
- Python Django URL逆向解析(通过模板页面逆向访问)代码示例
- Android -ui控件
- ncnn:提取所有层特征值
- 域名邮箱和邮件服务器
- 干货 | Python之自动化报表
- c语言 常量整数,C语言的整型常量
- 如何有效练习英语口语
- 《乱音盒子》之《隐者小调》
- 秦始皇焚书坑儒只因曾被算命先生忽悠?
- Ubuntu18.04修复grub引导
- 简单几步轻松查看手机生产日期,换屏哥上门维修喊你一起来学习
- SemanticKitti数据集的使用
- 查看表空间、schema和表空间下所有表相关理解
- python-nmap使用方法(python3)