递归获取某个节点的儿子节点

java 代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public List<Department> getAllChildrenDepartmentsFlat(Long parentId) {
        List<Department> allDepartments = departmentRepository.findAll();  // 假设使用JPA的Repository来进行数据库操作
 
        List<Department> allChildren = new ArrayList<>();
        Department parent = departmentRepository.findById(parentId);
        if (parent != null) {
            allChildren.add(parent);
            flattenChildren(allDepartments, parent, allChildren);
        }
 
        return allChildren;
    }
 
    private void flattenChildren(List<Department> allDepartments, Department parent, List<Department> flatList) {
        List<Department> children = allDepartments.stream()
                .filter(department -> department.getParentId().equals(parent.getId()))
                .collect(Collectors.toList());
         
        for (Department child : children) {
            flatList.add(child);
            flattenChildren(allDepartments, child, flatList);
        }
    }

  

posted @   翱翔的小鱼  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
点击右上角即可分享
微信分享提示