java stream.toMAp
时间: 2024-10-01 14:01:44 浏览: 39
Java中的`java.util.stream.Collectors.toMap()`方法有什么作用
在Java中,`Stream.toMap()`是一个流(Stream)操作方法,用于将流转换成一个映射(map),其中每个元素都会被映射到一个特定的键值对中。这个方法通常配合`Collectors.toMap()`收集器一起使用,它接受两个函数作为参数:
1. 键生成函数(keyMapper):这是一个Function,负责从原始流元素中提取出键值。
2. 值生成函数(valueMapper):另一个Function,用于从原始流元素中提取出对应的值。
例如,如果你有一个包含Person对象的Stream,你想根据人的姓名创建一个Map,姓名为键,Person对象本身为值,你可以这样做:
```java
List<Person> people = ...;
Map<String, Person> personMap = people.stream()
.collect(Collectors.toMap(Person::getName, Function.identity()));
```
这里,`Person::getName`是键生成函数,返回人的姓名;`Function.identity()`是默认值生成函数,表示如果无法获取值,就直接使用原对象。
阅读全文