当前位置:网站首页>Recursive implementation of department tree
Recursive implementation of department tree
2022-07-06 19:40:00 【linsa_ pursuer】
1.Department Entity class import lombok.Data; import java.util.List; @Data public class Department { String id; String parentId; List<Department> children; }
2. Test class
import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; public class Test { public static void main(String[] args) throws Exception { System.out.println(streamToTree(addList(), "000000")); } public static List<Department> streamToTree(List<Department> treeList, String parentId) { return treeList.stream() // Filter parent nodes .filter(parent -> parent.getParentId().equals(parentId)) // Put the parent node children Recursive assignment becomes a child node .map(child -> { child.setChildren(streamToTree(treeList, child.getId())); return child; }).collect(Collectors.toList()); } private static List<Department> addList(){ List<Department> list = new ArrayList<Department>(); Department departmentOne = new Department(); departmentOne.setParentId("000000"); departmentOne.setId("111111"); list.add(departmentOne); Department departmentOne1 = new Department(); departmentOne1.setParentId("111111"); departmentOne1.setId("111222"); list.add(departmentOne1); Department departmentOne2 = new Department(); departmentOne2.setParentId("111111"); departmentOne2.setId("111333"); list.add(departmentOne2); Department departmentTwo = new Department(); departmentTwo.setParentId("000000"); departmentTwo.setId("222222"); list.add(departmentTwo); Department departmentTwo1 = new Department(); departmentTwo1.setParentId("222222"); departmentTwo1.setId("222111"); list.add(departmentTwo1); return list; } }
边栏推荐
- CCNP Part 11 BGP (III) (essence)
- It's super detailed in history. It's too late for you to read this information if you want to find a job
- 反射及在运用过程中出现的IllegalAccessException异常
- 打家劫舍III[后序遍历与回溯+动态规划]
- About image reading and processing, etc
- MySQL information schema learning (I) -- general table
- Learn to explore - use pseudo elements to clear the high collapse caused by floating elements
- Don't miss this underestimated movie because of controversy!
- 【pytorch】yolov5 训练自己的数据集
- IC设计流程中需要使用到的文件
猜你喜欢
系统性详解Redis操作Hash类型数据(带源码分析及测试结果)
腾讯Android面试必问,10年Android开发经验
史上超级详细,想找工作的你还不看这份资料就晚了
Leetcode 30. 串联所有单词的子串
C language daily practice - day 22: Zero foundation learning dynamic planning
Mathematical knowledge -- code implementation of Gaussian elimination (elementary line transformation to solve equations)
理解 YOLOV1 第二篇 预测阶段 非极大值抑制(NMS)
JDBC details
Swiftui game source code Encyclopedia of Snake game based on geometryreader and preference
思维导图+源代码+笔记+项目,字节跳动+京东+360+网易面试题整理
随机推荐
About image reading and processing, etc
Hudi vs Delta vs Iceberg
从sparse.csc.csr_matrix生成邻接矩阵
如何自定义动漫头像?这6个免费精品在线卡通头像生成器,看一眼就怦然心动!
Teach you to learn JS prototype and prototype chain hand in hand, a tutorial that monkeys can understand
C language daily practice - day 22: Zero foundation learning dynamic planning
面试突击63:MySQL 中如何去重?
思維導圖+源代碼+筆記+項目,字節跳動+京東+360+網易面試題整理
Systematic and detailed explanation of redis operation hash type data (with source code analysis and test results)
Documents to be used in IC design process
中缀表达式转后缀表达式详细思路及代码实现
Interpretation of Dagan paper
【pytorch】yolov5 训练自己的数据集
CCNP Part 11 BGP (III) (essence)
spark基础-scala
map的使用(列表的数据赋值到表单,json逗号隔开显示赋值)
Leetcode topic [array] - 119 Yang Hui triangle II
接雨水问题解析
1805. Number of different integers in the string
终于可以一行代码也不用改了!ShardingSphere 原生驱动问世