JDK21 stream list 转map
时间: 2024-06-27 08:01:14 浏览: 5
在Java 11及更高版本中,你可以使用Java Stream API将List转换为Map。Stream API提供了一种方便的方法来进行集合操作,包括转换。下面是一个示例,展示如何使用流(Stream)将List转换为Map,假设我们有一个Person对象的List,每个Person有一个名字和年龄:
```java
import java.util.*;
import java.util.stream.Collectors;
// 假设Person类有两个属性,name和age
class Person {
String name;
int age;
// constructor, getters and setters
}
List<Person> personList = Arrays.asList(
new Person("Alice", 25),
new Person("Bob", 30),
new Person("Charlie", 35)
);
// 使用Stream转换List到Map,这里假设每个人的名字唯一
Map<String, Integer> map = personList.stream()
.collect(Collectors.toMap(Person::getName, Person::getAge));
// 现在map中,key是person的名字,value是对应的人的年龄
```
在这个例子中,`Collectors.toMap()`方法接受两个函数参数,第一个函数用于从Person对象获取Map的key(名字),第二个函数获取value(年龄)。如果List中有重复的key,通常情况下,最后一个映射到Map中的值会被保留。