* 构造树
* @param nodes
* @param idKey
* @param parentIdKey
* @param childrenKey
* @return
*/
public static List<Map<String, Object>> buildTree(List<Map<String, Object>> nodes, String idKey, String parentIdKey, String childrenKey) {
Map<Object, Map<String, Object>> nodesMap = new LinkedHashMap<>();
for(Map<String, Object> node : nodes) {
nodesMap.put(node.get(idKey), node);
}
List<Map<String, Object>> tree = new LinkedList<>();
for(Map<String, Object> node : nodes) {
Map<String, Object> parentNode = nodesMap.get(node.get(parentIdKey));
if (parentNode != null) {
List<Map<String, Object>> children = (List)parentNode.get(childrenKey);
if (children == null) {
children = new ArrayList<>();
parentNode.put(childrenKey, children);
}
children.add(node);
} else {
tree.add(node);
}
}
return tree;
}
Java 组装树
最新推荐文章于 2024-05-28 18:14:46 发布