/**
* 构建树
*
* @param list
* @return
*/
private List<Map<String, Object>> buildTree(List<Map<String, Object>> list) {
if (CollectionUtils.isEmpty(list)) {
return new ArrayList<>();
}
for (Map<String, Object> item : list) {
item.put("childs", new ArrayList<Map<String, Object>>());
}
Map<String, Map<String, Object>> kvMap = list2map(list);
Iterator<Map<String, Object>> iterator = list.iterator();
while (iterator.hasNext()) {
Map<String, Object> item = iterator.next();
String pid = (String) item.get("pid");
if (StringUtils.isNotBlank(pid)) {
Map<String, Object> pMap = kvMap.get(pid);
if (pMap != null) {
List<Map<String, Object>> childs = (List<Map<String, Object>>) pMap.get("childs");
childs.add(item);
iterator.remove();
}
}
}
return list;
}
/**
* list 转map
*
* @param list
* @return
*/
private Map<String, Map<String, Object>> list2map(List<Map<String, Object>> list) {
Map<String, Map<String, Object>> map = new HashMap<>();
for (Map<String, Object> item : list) {
String id = (String) item.get("cost_id");
map.put(id, item);
}
return map;
}
11-29
2万+

03-27