java1.8 lambda list转map
时间: 2023-11-04 19:00:46 浏览: 59
在Java 1.8中,可以使用lambda表达式将List转换为Map。具体实现方法如下:
首先,我们需要创建一个List对象:
```java
List<String> list = new ArrayList<>();
list.add("apple");
list.add("orange");
list.add("banana");
```
然后,我们可以使用lambda表达式将List转换为Map:
```java
Map<String, Integer> map = list.stream()
.collect(Collectors.toMap(Function.identity(), String::length));
```
这行代码的意思是将List中的元素作为Map的key,将元素的长度作为Map的value。其中,`Function.identity()`表示将元素本身作为key,`String::length`表示将元素的长度作为value。
我们也可以使用lambda表达式将List中的元素转换为自定义的对象,并将其作为Map的value:
```java
List<Person> list = new ArrayList<>();
list.add(new Person("Tom", 20));
list.add(new Person("Jerry", 30));
list.add(new Person("Kate", 25));
Map<String, Integer> map = list.stream()
.collect(Collectors.toMap(Person::getName, Person::getAge));
```
这行代码的意思是将List中的Person对象的name作为Map的key,将age作为Map的value。
注意,如果List中有重复的元素作为key,那么会抛出`java.lang.IllegalStateException`异常。此时,我们可以使用第三个参数来指定如何解决冲突,例如:
```java
Map<String, Integer> map = list.stream()
.collect(Collectors.toMap(Person::getName, Person::getAge, (a, b) -> a));
```
这行代码的意思是,如果出现重复的key,那么保留第一个key对应的value,忽略后面的value。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)