Collectors.toMap的使用案例
时间: 2024-02-20 13:55:27 浏览: 72
Collectors.toMap是Java 8中提供的一个用于将流(Stream)中的元素映射为Map的收集器。它可以根据指定的键和值的提取函数,将流中的元素转化为一个Map对象。
下面是一个使用Collectors.toMap的简单示例:
假设有一个Person类,包含id和name两个属性:
```java
class Person {
private int id;
private String name;
public Person(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
}
```
现在有一个Person列表,我们想将其转化为一个以id为键,name为值的Map对象:
```java
List<Person> personList = Arrays.asList(
new Person(1, "Alice"),
new Person(2, "Bob"),
new Person(3, "Charlie")
);
Map<Integer, String> personMap = personList.stream()
.collect(Collectors.toMap(Person::getId, Person::getName));
System.out.println(personMap);
```
输出结果为:
```
{1=Alice, 2=Bob, 3=Charlie}
```
在上述示例中,我们使用了Person类的getId方法作为键提取函数,getName方法作为值提取函数。通过调用Collectors.toMap方法,将流中的元素转化为一个以id为键,name为值的Map对象。
阅读全文