Java 将list集合转换为树形结构(部门树 权限树)

时间:2025-03-20 09:12:02

 在做类似部门或权限管理的需求时,往往需要根据父子id排成树形结构再返回相应的json给前端。

以下使用Java8新特性的Stream流实现。

public class Test{
    // 将数据库中查询出来的list集合传入此方法即可获得排成树形结构的list集合。
    public List<Dept> create(List<Dept> lists) {
        List<Dept> deptTreeList = ()
                .filter(item -> () == 0)
                .map(item -> {
                    (getChildren(item, lists));
                    return item;
                }).collect(());
        return deptTreeList;
    }
     
    // 此方法将被递归调用
    private List<Dept> getChildren(Dept dept, List<Dept> lists) {
        List<Dept> res = ()
                .filter(item -> ().equals(()))
                .map(item -> {
                    (getChildren(item, lists));
                    return item;
                }).collect(());
        return res;
    }
 
}