list<Map> stream流,合并相同key,value相加
时间: 2023-08-22 08:07:47 浏览: 462
python dict 相同key 合并value的实例
5星 · 资源好评率100%
假设你有一个 `List<Map<String, Integer>>`,每个 Map 中都有一些键值对,你想要按键合并这些 Map,并将重复键的值相加。可以使用 Java 8 的 Stream API 来完成这个任务。
下面是一个示例代码,它假设你的列表名为 `list`,键的名称为 `key`,值的名称为 `value`:
```
Map<String, Integer> result = list.stream()
.flatMap(map -> map.entrySet().stream())
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
Integer::sum
));
```
该代码首先将 `List<Map>` 转换为一个键值对流,然后使用 `Collectors.toMap()` 方法来将其收集到一个新的 Map 中。该方法有三个参数:第一个参数是用于提取键的函数,第二个参数是用于提取值的函数,第三个参数是一个函数,用于合并重复键的值。
在上面的代码中,第一个参数使用 `Map.Entry::getKey`,表示使用键作为键;第二个参数使用 `Map.Entry::getValue`,表示使用值作为值;第三个参数使用 `Integer::sum`,表示将重复键的值相加。
阅读全文