stream Collectors.toMap
时间: 2024-08-20 08:02:41 浏览: 109
Java中的`java.util.stream.Collectors.toMap()`方法有什么作用
`Stream.Collectors.toMap()` 是 Java Stream API 中的一个方法,用于将流转换成 Map。它允许你在流元素上应用一个函数(通常称为键生成器),然后将每个元素的值映射到该键上。这个过程创建了一个新的 Map,其中键是唯一且由键生成器确定的,而值则是流中的对应元素。
例如:
```java
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
Map<String, Integer> nameToAge = names.stream()
.collect(Collectors.toMap(name -> name, // 键生成器,这里通常是一个函数返回字符串
Function.identity(), // 对于每个元素,其本身作为值
(oldValue, newValue) -> oldValue)); // 合并策略,默认抛出异常,若键冲突
// 输出: {Alice=0, Bob=1, Charlie=2}
```
在这个例子中,`name -> name` 作为键生成器,它接收字符串名字并将其作为键;`Function.identity()` 表示每个元素的值就是它自身;如果一个键已经存在,合并策略(`(oldValue, newValue) -> oldValue`)会保留原始值(默认行为)。
阅读全文