java list转map
时间: 2023-10-13 15:23:57 浏览: 73
Java Lambda List转Map代码实例
5星 · 资源好评率100%
将一个 List 转换成 Map 可以使用 Java 8 的 Stream API 来处理。假设 List 中的元素是对象类型,对象有一个属性作为键,另一个属性作为值。可以按照如下方式将 List 转换成 Map:
```java
List<MyObject> list = new ArrayList<>();
Map<String, Integer> map = list.stream().collect(Collectors.toMap(MyObject::getKey, MyObject::getValue));
```
其中,`MyObject` 是 List 中元素的类型,`getKey()` 和 `getValue()` 是该对象中获取键和值的方法。如果两个元素的键相同,则后面的元素会覆盖前面的元素。
如果想要把 List 转换成 Map,但是有重复的键,可以使用 `toMap()` 方法的第三个参数来指定合并函数,例如:
```java
Map<String, MyObject> map = list.stream().collect(Collectors.toMap(MyObject::getKey, Function.identity(), (o1, o2) -> o1));
```
在这个例子中,我们使用 `Function.identity()` 方法作为值的提取方法,它返回对象自身,因此值就是原始的元素。第三个参数 `(o1, o2) -> o1` 指定了合并函数,它将重复的键上的值选择第一个元素,忽略后面的元素。
阅读全文