Java lambda list 转map
时间: 2023-08-16 21:14:43 浏览: 102
精通Java 8 lambda表达式
5星 · 资源好评率100%
在Java中,可以使用Lambda表达式将List转换为Map。以下是一个示例代码:
```java
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class ListToMapExample {
public static void main(String[] args) {
List<Person> personList = List.of(
new Person(1, "Alice"),
new Person(2, "Bob"),
new Person(3, "Charlie")
);
// 使用Lambda表达式将List转换为Map
Map<Integer, String> personMap = personList.stream()
.collect(Collectors.toMap(Person::getId, Person::getName));
// 打印转换后的Map
System.out.println(personMap);
}
}
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属性。然后,我们创建了一个包含Person对象的List。使用Java 8的Stream API和Collectors类的toMap方法,我们将List转换为Map。在toMap方法中,我们指定了Person对象的id属性作为键,name属性作为值。最后,我们打印转换后的Map。
请注意,如果List中存在重复的键,toMap方法将引发IllegalStateException异常。可以使用toMap方法的重载版本来处理重复键的情况。
阅读全文