java list lambda 转 map
时间: 2023-08-26 22:09:10 浏览: 162
在Java中,使用Lambda表达式可以很方便地将List转换为Map。首先,我们需要定义一个要操作的实体类,比如Person类。然后,我们可以使用Stream流的Lambda语法来进行List和Map的互转操作。
下面是一个示例代码,展示了如何使用Lambda表达式将List转换为Map:
```java
List<Person> persons = new ArrayList<>();
persons.add(new Person("张三", "男", 27));
persons.add(new Person("李四", "男", 14));
persons.add(new Person("王五", "女", 17));
persons.add(new Person("赵六", "女", 34));
Map<String, Person> personMap = persons.stream()
.collect(Collectors.toMap(Person::getUuid, Function.identity()));
```
在上面的代码中,我们使用了`stream()`方法将List转换为Stream流。然后,使用`collect()`方法结合`toMap()`方法来将Stream流转换为Map。`toMap()`方法接受两个参数,第一个参数是用于生成Map的键的函数,这里我们使用了Person类的`getUuid()`方法作为键。第二个参数是用于生成Map的值的函数,这里我们使用了`Function.identity()`方法,表示使用对象本身作为值。
通过这种方式,我们可以很方便地将List转换为Map,并且代码简洁优雅。同时,使用Lambda表达式进行转换操作也可以提高性能,特别是在处理大量数据时。
阅读全文