Collectors.toMap1
时间: 2024-09-18 19:00:20 浏览: 32
Java中的`java.util.stream.Collectors.toMap()`方法有什么作用
`Collectors.toMap()` 是Java 8引入的Stream API中用来创建映射的一个强大工具[^2]。它的基本语法如下:
```java
Map<KeyType, ValueType> map = stream.collect(Collectors.toMap(
keyFunction, // 提供每个元素转换为键的函数
valueFunction, // 提供每个元素转换为值的函数
mergeFunction // 处理键冲突时的合并策略 (可选)
));
```
其中,`keyFunction` 和 `valueFunction` 是函数式接口,它们接收流中的元素并返回相应的键和值。
举个例子,假设我们有一个`Employee`对象的流,想要按名字(Name)收集员工信息到一个Map中,键是名字,值是整个Employee对象[^1]:
```java
List<Employee> employees = ...;
Map<String, Employee> employeeMap = employees.stream()
.collect(Collectors.toMap(Employee::getName, Function.identity(),
(prev, cur) -> cur)); // 如果两个员工的名字相同,保留最后一个
```
在这个示例中,`Function.identity()` 表示保持原值作为默认的合并策略,即如果有重复的键,新添加的员工会覆盖之前的。
阅读全文