Collect(Collectors.toMap())的参数
时间: 2023-12-05 13:41:34 浏览: 81
Java lambda list转换map时,把多个参数拼接作为key操作
5星 · 资源好评率100%
Collectors.toMap()函数有三个参数:
1. keyMapper:用于提取Map的key的函数。
2. valueMapper:用于提取Map的value的函数。
3. mergeFunction:用于处理重复key的情况,将两个value合并成一个value的函数。
举个例子,假设有一个List<Student>,其中Student类有两个属性name和age,现在想要将List转换成Map,以name作为key,以age作为value。可以使用如下代码:
```java
List<Student> students = new ArrayList<>();
// 添加学生信息
Map<String, Integer> map = students.stream().collect(Collectors.toMap(Student::getName, Student::getAge));
```
如果存在重复的key,可以使用mergeFunction进行处理。例如,如果想要将重复的key的value相加,可以使用如下代码:
```java
Map<String, Integer> map = students.stream().collect(Collectors.toMap(Student::getName, Student::getAge, Integer::sum));
```
阅读全文