Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并
时间: 2024-02-19 18:04:00 浏览: 39
可以使用 Java 8 的 Stream API 来完成这个任务。具体实现方法如下:
假设我们有一个 List<Map<String, String>> 类型的列表,其中每个 Map 对象都包含若干个键值对。现在我们要将这个列表中所有 Map 对象中 key 相同的值合并,并将其他 key 对应的 value 值进行累加。可以按照以下步骤进行实现:
1. 使用 flatMap 方法将所有 Map 对象中的键值对转化为一个个的 Map.Entry 对象。
2. 使用 Collectors.groupingBy 方法将所有 Map.Entry 对象按照 key 进行分组。
3. 使用 Collectors.toMap 方法将每个分组中的所有 value 值进行累加,并将结果保存到一个新的 Map 对象中。
具体代码实现如下:
```java
List<Map<String, String>> list = new ArrayList<>();
// 假设列表中有若干个 Map 对象
// ...
Map<String, Integer> result = list.stream()
.flatMap(map -> map.entrySet().stream())
.collect(Collectors.groupingBy(Map.Entry::getKey,
Collectors.summingInt(entry -> Integer.valueOf(entry.getValue()))));
// 输出结果
result.forEach((k, v) -> System.out.println(k + " -> " + v));
```
上述代码将列表中所有 Map 对象中 key 相同的值进行了合并,并将其他 key 对应的 value 值进行了累加。其中,我们使用了 `Integer.valueOf(String)` 将字符串转换成整数类型。如果 Map 对象中对应 key 的 value 值不是整数类型,需要进行相应的类型转换。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)