Stream流list转map value值相加
时间: 2024-10-24 13:07:58 浏览: 24
详解Java8新特性Stream之list转map及问题解决
5星 · 资源好评率100%
Stream API 是 Java 8 引入的一种强大的数据处理工具,它提供了一种高效的方式来对集合进行转换、过滤和聚合操作。如果你有一个 List 对象,并想通过某个字段的值将其元素转换为 Map,其中 key 保持不变,value 为各个元素对应字段的累加,你可以这样做:
```java
List<String> list = ... // 假设这是一个包含字符串的列表
Map<String, Integer> map = list.stream() // 将列表转换为 Stream
.collect(Collectors.toMap(Function.identity(), // 使用 Function.identity() 获取每个元素自身的键
String::length, // 使用每个元素的长度作为值
Integer::sum)); // 如果你想累加长度,这里用 Integer::sum,如果需要其他操作,替换为相应的函数
// 现在 map 中的每个键(key)都是原列表中的元素,对应的值(value)则是该元素的字符数之和
```
在这个例子中,`Function.identity()` 用于获取原始键,`String::length` 是一个 Lambda 表达式,表示计算字符串的长度作为新值,而 `Integer::sum` 则是对所有值进行求和。
阅读全文