1.bean(根据需求创建)

@Data
public class MenuTreeDto  {private String b00;private String parentId;private String b0101;private int level;private List<MenuTreeDto> children;}

2.控制层

@RequestMapping("/list/tree")
public Result list(){List<MenuTreeDto> entities = dictService.listWithTree();return Result.ok(entities);
}

3.业务层

@Override
public List<MenuTreeDto> listWithTree() {//1、查出所有分类List<MenuTreeDto> entities = dictService.findAll();//2、组装成父子的树形结构//2.1)、找到所有的一级分类List<MenuTreeDto> level1Menus = entities.stream().filter(MenuTreeDto ->MenuTreeDto.getParentId().equals("aaa")).map((menu)->{menu.setLevel(1);menu.setChildren(getChildrens(menu,entities));return menu;}).collect(Collectors.toList());return level1Menus;
}

private List<MenuTreeDto> getChildrens(MenuTreeDto root,List<MenuTreeDto> all){List<MenuTreeDto> children = all.stream().filter(MenuTreeDto -> {return MenuTreeDto.getParentId().equals(root.getB00());}).map(MenuTreeDto -> {//1、找到子菜单MenuTreeDto.setLevel(root.getLevel()+1);MenuTreeDto.setChildren(getChildrens(MenuTreeDto,all));return MenuTreeDto;}).collect(Collectors.toList());return children;
}

4.postman测试

递归查找树形状结(利用steam流的方式)leval值标明相关推荐

  1. 1337:【例3-2】单词查找树

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 1732 通过数: 910 [题目描述] 在进行文法分析的时候,通常需要检测一个单词是否在我们的单词列表里.为了提高查找和定位的速度 ...

  2. 单词查找树(信息学奥赛一本通-T1337)

    [题目描述] 在进行文法分析的时候,通常需要检测一个单词是否在我们的单词列表里.为了提高查找和定位的速度,通常都画出与单词列表所对应的单词查找树,其特点如下: 1.根结点不包含字母,除根结点外每一个结 ...

  3. java中steam流的使用

    (1)数组合并 : 原始合并 定义俩个集合合并为一个集合 例子: public class 测试 {/*** 把小王合道* list中* */public static void main(Strin ...

  4. Stream流的方式遍历map,筛选数据

    文章目录 背景 解决方法 代码实战 产品类: 需要筛选的map集合: 结果分析: 背景 有一产品类,包含id,产品编号,产品金额.在代码中采用map方式去存储该产品,map的key是从数据库中查询出来 ...

  5. 无限级分类之递归查找家谱树

    该代码为利用递归查找家谱树,但是建议使用迭代查找效果会更好. <?php /** 无限级找家谱树(向上级寻找)适用范围:面包屑导航****/$area = array(array('id'=&g ...

  6. 语言非递归求解树的高度_算法素颜(11):无死角“盘”它!二分查找树

    引言 <菜鸟也能"种"好二叉树!>一文中提到了:为了方便查找,需要进行分层分类整理.而满足这种目标的数据结构之一就是树. 树的叶子节点可以看作是最终要搜寻的目标物:叶子 ...

  7. js数组对象递归转换树_使用手刹批量转换视频目录树以递归流式传输到Xbox360

    js数组对象递归转换树 I've got many many gigs of 640x480 video of the kids and family taken on my Flip Ultra a ...

  8. java基础5:工厂模式、单例模式、File文件类、递归、IO流、Properties配置文件、网络编程、利用IO流模拟注册登录功能、关于反射、JDK动态代理

    1.工厂模式 23种java设计模式之一 1)提供抽象类(基类) 2)提供一些子类,完成方法重写 3)提供一个接口:完成具体子类的实例化对象的创建,不能直接new子类,构造函数私有化. 优点:具体的子 ...

  9. 笔试算法题(58):二分查找树性能分析(Binary Search Tree Performance Analysis)

    议题:二分查找树性能分析(Binary Search Tree Performance Analysis) 分析: 二叉搜索树(Binary Search Tree,BST)是一颗典型的二叉树,同时任 ...

最新文章

  1. SilverLight学习笔记--Silverlight中WebRequest通讯
  2. MIT、哈佛合作,这个研究让神经网络认清自己“几斤几两”!
  3. source insight使用说明[转]--后续发现好的再加
  4. 键盘映射软件_KOMPLETE KONTROL M32 键盘 MIDI 控制器的评测
  5. Apache Kafka消息格式的演变(0.7.x~0.10.x)
  6. 人工智能技术在智能制造中的典型应用场景与标准体系研究
  7. 测试学开发——第一课:java学习路程
  8. C++之move提升copy性能
  9. Android—构建安全的Android客户端请求,避免非法请求
  10. 小语种nlp文本预处理——数据清洗
  11. 2059 mysql
  12. IIS7 请求筛选模块被配置为拒绝超过请求内容长度的请求
  13. 什么是社会融资规模,M0、M1、M2?
  14. java subject类的作用_RxJava2 系列-3:使用 Subject
  15. ZIP 压缩解压命令
  16. 与技术无关,但却值得码农们好好读一读的怪书:禅与摩托车维修艺术
  17. python读取excel画出饼状图_python操作Excel、openpyxl 之图表,折线图、饼图、柱状图等...
  18. Java中被你忽视的四种引用
  19. 邮件内容以html形式,如何以邮件的形式发送HTML文件?
  20. OPPO WATCH 3 Pro重新安装微信儿童版

热门文章

  1. EXCEL 2016常用知识--Excel数据透视表
  2. oracle从序列中查最大id,Oracle序列详解
  3. 大数乘法——大数问题
  4. Python实现简单的web爬虫信息处理系统
  5. linux获取系统时间
  6. Scala中过滤操作filter与filterNot函数
  7. 【VUE-编辑回显】
  8. Arduino智能小车设计(七)
  9. JZOJ ???? dexterity
  10. 七种策略助企业成功转型数字化