可以当成一个工具类
实体类 TreeNode
public class TreeNode {
private String key
;
private String code
;
private String title
;
private String parentKey
;
private List
<TreeNode> children
;
}
建树的方法 bulidTree
public <T
extends TreeNode> List
<T> bulidTree(List
<T> list
) {
Map
<String, T> map
= new HashMap<String, T>(256);
List
<T> trees
= new ArrayList<>();
for (T t
:list
) {
map
.put(t
.getKey(),t
);
}
for (T t
: list
) {
T parent
= map
.get(t
.getParentKey());
if (parent
!=null
) {
List
<T> children
= (List
<T>) parent
.getChildren();
if(children
==null
){
children
= new ArrayList<>();
}
children
.add(t
);
parent
.setChildren((List
<TreeNode>) children
);
} else {
trees
.add(t
);
}
}
return trees
;
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-7021.html