Java处理数据成为树状结构

news/2024/10/17 23:26:01/

如题所示,项目中需要将部分数据处理成为树状结构,实现过程如下:

注:也可以使用sql达到该目的,但此处数据不多,故在代码中处理,主要是sql处理不是很会
	// 获取需要封装的数据List<Data> dataAll = service.findAll();if (CollUtil.isEmpty(dataAll)) {return new ArrayList<>();}// 获取顶层目录 项目中上级编码为空则为一级目录List<Data> parentList = dataAll.stream().filter(item -> ObjectUtil.isEmpty(item.getParentNumber())).collect(Collectors.toList());// 获取下级目录,上级编码不为空则非一级目录List<Data> childList = dataAll.stream().filter(item -> ObjectUtil.isNotEmpty(item.getParentNumber())).collect(Collectors.toList());// 封装树状结构return parentList.stream().map(item1 -> {Data chapterVo = new Data();BeanUtils.copyProperties(item1, chapterVo);List<Data> videoVoList = childList.stream().filter(item2 -> item1.getBackgroundManagementCategoryNumber().equals(item2.getParentNumber())).map(item3 -> {Data videoVo = new Data();BeanUtils.copyProperties(item3, videoVo);return videoVo;}).collect(Collectors.toList());chapterVo.setChildren(videoVoList);return chapterVo;}).collect(Collectors.toList());

http://www.ppmy.cn/news/779.html

相关文章

java(面向对象)的23种设计模式(11)——观察者模式

一、定义 观察者模式&#xff1a;指多个对象间存在一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。 换种说法&#xff0c;定义两种对象&#xff0c;观察者和目标对象&#xff0c;多个观察者同时监听一个目标对…

pikachu平台SQL注入

pikachu平台SQL注入 日常心累、速通pikachu注入相关 目录pikachu平台SQL注入使用到的名词解释1. 数字型注入 --使用bp处理数据包2. 字符型注入 --hackbar处理3. 搜索型注入4. xx型注入5. insert/update注入6. delete注入7. http头注入8. 布尔盲注9. 时间盲注10. 宽字节注入使用…

Shell基础语法——命令

内建命令&#xff08;内置命令&#xff09; 所谓 Shell 内建命令&#xff0c;就是由 Bash 自身提供的命令&#xff0c;而不是文件系统中的某个可执行文件。可以使用 type 来确定一个命令是否是内建命令。 通常来说&#xff0c;内建命令会比外部命令执行得更快&#xff0c;执行…

【云原生之Docker实战】使用docker部署Homebox内网测速工具

【云原生之Docker实战】使用docker部署Homebox内网测速工具 一、Homebox介绍1.Homebox简介2.Homebox特点二、检查本地系统环境1.检查系统版本2.检查系统内核版本三、检查docker环境1.检查docker版本2.检查docker状态四、下载Homebox镜像五、安装docker-compose工具1.下载docker…

qt程序的CMakeLists.txt配置转为平台的qt的.pro项目工程文件

参考这个 跨平台qt程序的CMakeLists.txt配置转为平台的qt的.pro项目工程文件_谁能懂我2011的博客-CSDN博客 一些比较正规的跨平台qt项目没有.pro项目文件只有CMakeLists.txt文件&#xff0c;如果要编译调试的话得转为qt项目&#xff0c; 首先打开qt安装目录里面的qmake工具&a…

leetcode 376 摆动序列

题目 如果连续数字之间的差严格地在正数和负数之间交替&#xff0c;则数字序列称为 摆动序列 。第一个差&#xff08;如果存在的话&#xff09;可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。 例如&#xff0c; [1, 7, 4, 9, 2, 5] 是一个 摆动序列…

SAP ABAP——数据类型(三)【TYPE-POOL和INCLUDE嵌套定义类型】

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后…

AI 作画领域中的“神笔马良”是怎样炼成的?

本文由行者AI携手亚马逊云科技共同推出 刷爆朋友圈的 AIGC 是什么&#xff1f; AI Generated Content (AIGC&#xff0c;利用人工智能技术来生成内容)&#xff0c;是继专业生产内容&#xff08;PGC, Professional-generated Content&#xff09;、用户生产内容&#xff08;UGC…