当前位置:网站首页>部门树递归实现
部门树递归实现
2022-07-06 11:38:00 【linsa_pursuer】
1.Department实体类 import lombok.Data; import java.util.List; @Data public class Department { String id; String parentId; List<Department> children; }
2.测试类
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 -> parent.getParentId().equals(parentId)) // 把父节点children递归赋值成为子节点 .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; } }
边栏推荐
猜你喜欢
PMP practice once a day | don't get lost in the exam -7.6
LeetCode-1279. Traffic light intersection
算法面试经典100题,Android程序员最新职业规划
Druid database connection pool details
MySQL information Schema Learning (i) - - General table
Hudi vs Delta vs Iceberg
[玩转Linux] [Docker] MySQL安装和配置
思維導圖+源代碼+筆記+項目,字節跳動+京東+360+網易面試題整理
【计算情与思】扫地僧、打字员、信息恐慌与奥本海默
保证接口数据安全的10种方案
随机推荐
凤凰架构2——访问远程服务
Problems encountered in using RT thread component fish
Take a look at how cabloyjs workflow engine implements activiti boundary events
[translation] supply chain security project in toto moved to CNCF incubator
反射及在运用过程中出现的IllegalAccessException异常
A method of removing text blur based on pixel repair
Intelligent supply chain management system solution for hardware and electromechanical industry: digital intelligent supply chain "creates new blood" for traditional industries
潇洒郎: AttributeError: partially initialized module ‘cv2‘ has no attribute ‘gapi_wip_gst_GStreamerPipe
关于图像的读取及处理等
It's super detailed in history. It's too late for you to read this information if you want to find a job
Modulenotfounderror: no module named 'PIL' solution
short i =1; i=i+1与short i=1; i+=1的区别
Live broadcast today | the 2022 Hongji ecological partnership conference of "Renji collaboration has come" is ready to go
Learning and Exploration - Seamless rotation map
思維導圖+源代碼+筆記+項目,字節跳動+京東+360+網易面試題整理
Unbalance balance (dynamic programming, DP)
In depth analysis, Android interview real problem analysis is popular all over the network
Solution of intelligent management platform for suppliers in hardware and electromechanical industry: optimize supply chain management and drive enterprise performance growth
DaGAN论文解读
Spark foundation -scala