`

递归遍历无限极节点树

阅读更多
1、查询出所有的根节点:
public List<Object> getGroupTree() {
List<Object> list=new ArrayList<Object>();
List<Group> groupList=groupDao.getGroupList("/");
for (Group group : groupList) {
  list.add(getChildrenList(group));
}
return list;
}
2、遍历某根节点的所有子节点:
public Map<String, Object> getChildrenList(Group group){
if (group==null) {
  return null;
}
Map<String, Object> map=new HashMap<String, Object>();
String path=group.getPath();
String idPath="/"+group.getId();
if (!"/".equals(path)) {
  idPath+=group.getPath();
}
map.put("id", idPath);
map.put("text", group.getName());
List<Group> groupList=groupDao.getGroupList(idPath);
if (groupList==null||groupList.size()<=0) {// 没有子节点了
  return map;
}
map.put("state", "closed");
List<Map<String, Object>> childrenList=new ArrayList<Map<String,Object>>();
for (Group group2 : groupList) {
  childrenList.add(getChildrenList(group2));
}
map.put("children", childrenList);
return map;
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics