简单的list查询转换为tree结构

来源:互联网 发布:php项目开发实战密码 编辑:程序博客网 时间:2024/06/01 16:09
public List<Module> getTree() {
List<Module> list = moduleMapper.queryList();
 List<Module> modules = makeTree(list);
return list;
}


private List<Module> makeTree(List<Module> list) {
List<Module> parent = new ArrayList<Module>();
// get parentId = null;
for (Module e : list) {
if (e.getParent_Module() == null) {
e.setChildren(new ArrayList<Module>(0));
parent.add(e);
}
}
// 删除parentId = null;
list.removeAll(parent);


makeChildren(parent, list);


return parent;
}


private void makeChildren(List<Module> parent, List<Module> children) {
if (children.isEmpty()) {
return;
}


List<Module> tmp = new ArrayList<Module>();
for (Module c1 : parent) {
for (Module c2 : children) {
c2.setChildren(new ArrayList<Module>(0));
if (c1.getId().equals(c2.getParent_Module().getId())) {
c1.getChildren().add(c2);
tmp.add(c2);
}
}
}


children.removeAll(tmp);


makeChildren(tmp, children);
}
0 0
原创粉丝点击