# 设置节点

# 获取所有根节点和为根节点设置下级节点

//最终结果
List<Entity> res = new ArrayList<Entity>();
//所有根节点
for (Entity e : list) {   //list:数据库原始数据
    if(e.getParentId().equals("0")) {
        res.add(e);
    }
}
//为根节点设置下级节点
for(Entity listRes : res) {
    listRes.setChildren(getChild(listRes.getId(),list));
}
1
2
3
4
5
6
7
8
9
10
11
12

# 递归查找子节点

/**
* 递归查找子节点
* @param id  当前节点id
* @param list  要查找的列表
* @return
*/
private List<Entity> getChild(String id,List<Entity> list){
  //子节点
  List<Entity> childList = new ArrayList<Entity>();
  for (Entity ify : list) {
    if(ify.getParentId().equals(id)) {
      childList.add(ify);
    }
  }
  //循环子节点
  for(Entity ify : childList) {
    //递归
    ify.setChildren(getChild(ify.getId(),list));
  }
  //退出
  if(childList.size() == 0) {
    return null;
  }
    return childList;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Last Updated: 3/4/2019, 4:34:52 PM