java list转化为map
时间: 2023-07-14 20:12:51 浏览: 80
将一个Java List转化为Map可以使用Java 8的Stream API和Collectors类来实现。
例如,假设我们有一个List<Student>,其中Student类有两个属性,id和name。我们想要将这个List转化为一个Map,其中key为学生的id,value为学生的name。
我们可以使用以下代码实现:
```
List<Student> students = new ArrayList<>();
Map<Integer, String> studentMap = students.stream()
.collect(Collectors.toMap(Student::getId, Student::getName));
```
上述代码中,我们首先创建了一个空的List<Student>,然后使用Stream API将其转化为Map。在Collectors.toMap()方法中,我们传递了两个参数,分别为keyMapper和valueMapper。这两个参数分别指定了如何从Student对象中提取key和value。在本例中,我们使用Student::getId作为keyMapper,Student::getName作为valueMapper。
如果我们希望对重复的key进行处理,则可以使用Collectors.toMap()方法的第三个参数,例如:
```
Map<Integer, String> studentMap = students.stream()
.collect(Collectors.toMap(Student::getId, Student::getName, (oldValue, newValue) -> oldValue));
```
在上述代码中,我们传递了一个合并函数,用于指定对重复的key进行处理的策略。在本例中,我们使用了一个简单的策略,即保留旧的value。
阅读全文