递归查找树形状结(利用steam流的方式)leval值标明
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值标明相关推荐
- 1337:【例3-2】单词查找树
时间限制: 1000 ms 内存限制: 65536 KB 提交数: 1732 通过数: 910 [题目描述] 在进行文法分析的时候,通常需要检测一个单词是否在我们的单词列表里.为了提高查找和定位的速度 ...
- 单词查找树(信息学奥赛一本通-T1337)
[题目描述] 在进行文法分析的时候,通常需要检测一个单词是否在我们的单词列表里.为了提高查找和定位的速度,通常都画出与单词列表所对应的单词查找树,其特点如下: 1.根结点不包含字母,除根结点外每一个结 ...
- java中steam流的使用
(1)数组合并 : 原始合并 定义俩个集合合并为一个集合 例子: public class 测试 {/*** 把小王合道* list中* */public static void main(Strin ...
- Stream流的方式遍历map,筛选数据
文章目录 背景 解决方法 代码实战 产品类: 需要筛选的map集合: 结果分析: 背景 有一产品类,包含id,产品编号,产品金额.在代码中采用map方式去存储该产品,map的key是从数据库中查询出来 ...
- 无限级分类之递归查找家谱树
该代码为利用递归查找家谱树,但是建议使用迭代查找效果会更好. <?php /** 无限级找家谱树(向上级寻找)适用范围:面包屑导航****/$area = array(array('id'=&g ...
- 语言非递归求解树的高度_算法素颜(11):无死角“盘”它!二分查找树
引言 <菜鸟也能"种"好二叉树!>一文中提到了:为了方便查找,需要进行分层分类整理.而满足这种目标的数据结构之一就是树. 树的叶子节点可以看作是最终要搜寻的目标物:叶子 ...
- js数组对象递归转换树_使用手刹批量转换视频目录树以递归流式传输到Xbox360
js数组对象递归转换树 I've got many many gigs of 640x480 video of the kids and family taken on my Flip Ultra a ...
- java基础5:工厂模式、单例模式、File文件类、递归、IO流、Properties配置文件、网络编程、利用IO流模拟注册登录功能、关于反射、JDK动态代理
1.工厂模式 23种java设计模式之一 1)提供抽象类(基类) 2)提供一些子类,完成方法重写 3)提供一个接口:完成具体子类的实例化对象的创建,不能直接new子类,构造函数私有化. 优点:具体的子 ...
- 笔试算法题(58):二分查找树性能分析(Binary Search Tree Performance Analysis)
议题:二分查找树性能分析(Binary Search Tree Performance Analysis) 分析: 二叉搜索树(Binary Search Tree,BST)是一颗典型的二叉树,同时任 ...
最新文章
- SilverLight学习笔记--Silverlight中WebRequest通讯
- MIT、哈佛合作,这个研究让神经网络认清自己“几斤几两”!
- source insight使用说明[转]--后续发现好的再加
- 键盘映射软件_KOMPLETE KONTROL M32 键盘 MIDI 控制器的评测
- Apache Kafka消息格式的演变(0.7.x~0.10.x)
- 人工智能技术在智能制造中的典型应用场景与标准体系研究
- 测试学开发——第一课:java学习路程
- C++之move提升copy性能
- Android—构建安全的Android客户端请求,避免非法请求
- 小语种nlp文本预处理——数据清洗
- 2059 mysql
- IIS7 请求筛选模块被配置为拒绝超过请求内容长度的请求
- 什么是社会融资规模,M0、M1、M2?
- java subject类的作用_RxJava2 系列-3:使用 Subject
- ZIP 压缩解压命令
- 与技术无关,但却值得码农们好好读一读的怪书:禅与摩托车维修艺术
- python读取excel画出饼状图_python操作Excel、openpyxl 之图表,折线图、饼图、柱状图等...
- Java中被你忽视的四种引用
- 邮件内容以html形式,如何以邮件的形式发送HTML文件?
- OPPO WATCH 3 Pro重新安装微信儿童版