javal list转map
时间: 2023-07-05 15:36:45 浏览: 83
可以使用Java 8中的Stream API将List转换为Map。以下是一个示例代码:
```Java
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Pair<String, Integer>> myList = new ArrayList<>();
myList.add(new Pair<>("apple", 3));
myList.add(new Pair<>("banana", 2));
myList.add(new Pair<>("orange", 5));
myList.add(new Pair<>("pear", 1));
// 将list转换为map
Map<String, Integer> myMap = myList.stream().collect(
HashMap::new,
(map, pair) -> map.put(pair.getKey(), pair.getValue()),
HashMap::putAll
);
// 遍历map
for (Map.Entry<String, Integer> entry : myMap.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
```
在上面的代码中,我们使用了Java 8中的Stream API,将 `myList` 转换为了一个 `Map` 对象 `myMap`。具体来说,我们使用 `Stream.collect()` 方法,并传入三个参数:一个 `Supplier`,一个 `BiConsumer` 和一个 `BiConsumer`。`Supplier` 用于提供一个新的空的 `Map` 对象,我们在这里使用了 `HashMap::new`。`BiConsumer` 用于将 `Pair` 对象的键值对插入到 `Map` 对象中,我们在这里使用了 `(map, pair) -> map.put(pair.getKey(), pair.getValue())`。`BiConsumer` 用于将多个 `Map` 对象合并为一个,我们在这里使用了 `HashMap::putAll`。
最后,我们再次遍历 `myMap` 并输出其所有键值对的键和值。
阅读全文