Map出现重复Key值将下一个key值叠加在上一个key值中
List<Map<String, Object>> list = new ArrayList<>();
//模拟数据库数据
for (int i = 0; i < 10; i++) {
Map<String, Object> map = new HashMap<>();
map.put("id", i);
map.put("name", "张三" + i);
if (i < 10 - 1) {
map.put("pid", 2);
} else {
map.put("pid", 3);
}
list.add(map);
}
//运用map中的containsKey方法
Map<String, Object> map1 = new HashMap<>();
for (Map map2 : list) {
List<Object> list1 = new ArrayList<>();
String pid = map2.get("pid") + "";
//如果是重复的那么就进行叠加操作
if (map1.containsKey(pid)) {
list1 = (List<Object>) map1.get(pid);
}
list1.add(map2);
map1.put(map2.get("pid") + "", list1);
}
System.out.println(map1);
}