在做类似部门或权限管理的需求时,往往需要根据父子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;
}
}