简单的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);
}
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
- 简单的list查询转换为tree结构
- 简单list转化为tree结构
- 普通LIST列表转换为Tree
- 普通LIST列表转换为Tree
- 将XML文件转换为easyui Tree结构json
- List转换成Tree
- 简单的查询类型转换
- 如何将linq查询的结果 转换为DataTable,最简单的实现方法
- 通用的DataTable转换为List
- DataTable转换为List的通用类
- DataTable转换为List的通用类
- DataTable转换为List的通用类
- DataTable转换为List的通用类
- DataTable转换为List的通用类
- List,Set转换为数组的方法
- ResultSet转换为List的方法
- json数组转换为list的问题
- 三种将list转换为map的方法
- 【秒懂设计模式】总述及工厂模式
- Java设计模式—观察者模式
- 算法作业_18(2017.4.26第十周)
- Float Vs Double
- LeetCode:Linked List Cycle
- 简单的list查询转换为tree结构
- 嵌套的盒子(居中)
- 产品初学思考
- MySQL用户管理
- c++实验总结
- supervisor命令出现unix:///tmp/supervisor.sock no such file报错
- C++ 多态问题:为什么不直接用子类引用子类,而是用父类指针指向子类
- 动态存储管理之一【严蔚敏】
- PageRank