java 8 stream List 转 map
时间: 2024-02-01 08:02:04 浏览: 82
在Java 8中,你可以使用`stream()`方法和`Collectors.toMap()`方法将一个`List`转换为一个`Map`。具体实现代码如下:
假设你有一个`Person`类,具有`id`和`name`属性:
```java
public 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;
}
}
```
然后,你有一个`List`包含多个`Person`对象:
```java
List<Person> personList = new ArrayList<>();
personList.add(new Person(1, "Alice"));
personList.add(new Person(2, "Bob"));
personList.add(new Person(3, "Charlie"));
```
现在,你想把这个`List`转换为一个`Map`,其中`id`作为键,`name`作为值,可以使用以下代码:
```java
Map<Integer, String> personMap = personList.stream()
.collect(Collectors.toMap(Person::getId, Person::getName));
```
这里使用了`stream()`方法将`List`转换为一个`Stream`,然后使用`Collectors.toMap()`方法将`Stream`转换为一个`Map`。在`toMap()`方法中,我们指定了键和值的提取函数,即`Person::getId`和`Person::getName`。
阅读全文