博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 多级菜单树工具
阅读量:2074 次
发布时间:2019-04-29

本文共 1707 字,大约阅读时间需要 5 分钟。

关于Java中多级菜单树的处理

  • 今天被一个菜单列表的展现折磨得不轻,自己写代码发现实在是费时费力,而且代码量太大,逻辑亟待优化,后续找到了这个代码十分简洁的工具类,说实话我只能看得懂,写不出来这种东西。在此分享给大家,避免重复造轮子的工作~

多级树Bean

这是一个基础bean:

/** * 功能描述: * 【分组信息bean】 * 注意,下面的bean每个属性都为必要属性,不可缺一 * 可以在此bean基础上再添加多个属性,不会影响树结构 * 类上的三个注解为lombok插件 * * @author chihiro * @version V1.0 * @date 2019/03/06 17:35 */@Data@NoArgsConstructor@AllArgsConstructorpublic class GroupInfoBean {
/** * 分组主键 */ private String groupId; /** * 父节点id */ private String parentId; /** * 子节点集合 */ private List
children;}

树工具类

核心工具类:

/** * 功能描述: * 【多级树util】 * 核心是使用递归 * * @author chihiro * @version V1.0 * @date 2019/03/06 18:45 */@AllArgsConstructorpublic class TreeToolUtil {
/** * 根节点 */ private List
rootList; /** * 叶子节点,可包含跟节点 */ private List
bodyList; public List
getTree() {
if (CollUtil.isNotEmpty(bodyList)) {
//声明一个map,用来过滤已操作过的数据 Map
map = MapUtil.newHashMap(bodyList.size()); rootList.forEach(beanTree -> getChild(beanTree, map)); return rootList; } return null; } private void getChild(GroupInfoVo beanTree, Map
map) {
List
childList = CollUtil.newArrayList(); bodyList.stream() .filter(group -> !map.containsKey(group.getGroupId())) .filter(group -> group.getParentId().equals(beanTree.getGroupId())) .forEach(group -> { map.put(group.getGroupId(), group.getParentId()); getChild(group, map); childList.add(group); }); beanTree.setChildren(childList); }}

后记

  • 这套代码也是本人从网上找来调整为自己使用的,非本人自主构建。
  • 若遇到其他Bug,请通过博客内联系方式找到我,我尽量解决。

转载地址:http://qotmf.baihongyu.com/

你可能感兴趣的文章
学习网站汇总
查看>>
【Python】用Python打开csv和xml文件
查看>>
【Loadrunner】性能测试报告实战
查看>>
【面试】一份自我介绍模板
查看>>
【自动化测试】自动化测试需要了解的的一些事情。
查看>>
【selenium】selenium ide的安装过程
查看>>
【手机自动化测试】monkey测试
查看>>
【英语】软件开发常用英语词汇
查看>>
Fiddler 抓包工具总结
查看>>
【雅思】雅思需要购买和准备的学习资料
查看>>
【雅思】雅思写作作业(1)
查看>>
【雅思】【大作文】【审题作业】关于同不同意的审题作业(重点)
查看>>
【Loadrunner】通过loadrunner录制时候有事件但是白页无法出来登录页怎么办?
查看>>
【English】【托业】【四六级】写译高频词汇
查看>>
【托业】【新东方全真模拟】01~02-----P5~6
查看>>
【托业】【新东方全真模拟】03~04-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST05~06-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST09~10-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST07~08-----P5~6
查看>>
solver及其配置
查看>>