使用Collectors.toMap该怎么实现
时间: 2023-10-15 18:24:48 浏览: 78
您可以使用`Collectors.toMap()`方法来创建一个`Map`对象。这个方法接受两个参数,一个是`keyMapper`函数,用于提取键值对中的键;另一个是`valueMapper`函数,用于提取键值对中的值。
下面是一个示例:
```java
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Person> persons = Arrays.asList(
new Person("Alice", 25),
new Person("Bob", 30),
new Person("Charlie", 35)
);
Map<String, Integer> ageByName = persons.stream()
.collect(Collectors.toMap(Person::getName, Person::getAge));
System.out.println(ageByName);
}
static class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
}
```
在上面的示例中,我们将一个包含`Person`对象的列表转换为一个`Map`对象,其中键是人的姓名,值是人的年龄。请注意,`Person::getName`表示通过调用`getName()`方法获得姓名,`Person::getAge`表示通过调用`getAge()`方法获取年龄。
输出将是:
```
{Alice=25, Bob=30, Charlie=35}
```
希望这可以帮助到您!如果您有任何其他问题,请随时提问。
阅读全文