假设有一张表存了父子关系的表
1:
先去查询 一级的数据(根),得到的结果为parentResult对象。
再去查询 表中所有数据,得到的结果为allResult对象。
2:遍历结果parentResult对象,为parentResult对象赋值孩子
private void getAreaConfigTree(List<T> parentResult, List<T> allResult) {
for (T parentInfo : parentResult) {
setChildren(allResult, parentInfo);
}
}
3:创建一个 setChildren递归方法;
private void setChildren(List<T> allResult, T parentInfo) {
//获取parentInfo节点的所有子节点
List<T> children = getChildren(allResult, parentInfo.getId());
//设置parentInfo的children
parentInfo.setChildren(children);
//遍历parentInfo的所有子节点
for(T temp : children){
//递归设置parentInfo的子节点的children
setChildren(allResult,temp);
}
}
4:
private List<T> getChildren(List<T> allResult,Long id){
//空的子节点集合children
List<T> children = new ArrayList<T>();
for(T temp : allResult){
//如果temp的pid不为空,且等于id,添加到children
if(null != temp.getParentId() && temp.getParentId().equals(id)){
children.add(temp);
}
}
return children;
}
树形、父子关系、递归、父子封装数据
最新推荐文章于 2022-09-02 11:40:49 发布