两个list<map>按照map的key进行合并java
时间: 2023-08-02 14:05:48 浏览: 141
Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并
可以使用Java 8的Stream API来合并两个List<Map>,如下所示:
```java
List<Map<String, Object>> list1 = ...
List<Map<String, Object>> list2 = ...
List<Map<String, Object>> mergedList = Stream.concat(list1.stream(), list2.stream())
.collect(Collectors.groupingBy(map -> map.get("key")))
.entrySet()
.stream()
.map(entry -> entry.getValue().stream()
.reduce(new HashMap<>(), (map1, map2) -> {
map1.putAll(map2);
return map1;
}))
.collect(Collectors.toList());
```
上述代码中,我们使用Stream.concat()方法将两个List<Map>合并为一个Stream,然后使用Collectors.groupingBy()方法按照Map的key进行分组,最后使用Stream.map()方法将分组后的Map列表合并为一个Map。
阅读全文