ava 写一个方法将map(k,v) 转为 list<map(k,v)>
时间: 2024-02-24 15:56:51 浏览: 68
可以使用Java 8 的流(Stream)和Lambda表达式来实现这个功能,代码如下:
```java
public static <K, V> List<Map<K, V>> mapToList(Map<K, V> map) {
return map.entrySet().stream()
.map(entry -> Collections.singletonMap(entry.getKey(), entry.getValue()))
.collect(Collectors.toList());
}
```
这个方法接收一个 `Map<K, V>` 对象作为参数,返回一个 `List<Map<K, V>>` 对象。它使用 `Stream` 对 `Map` 中的每一项进行处理,将每个键值对转换为一个只包含该键值对的新 `Map` 对象,然后将所有新的 `Map` 对象收集到一个列表中并返回。注意,每个新的 `Map` 对象都是使用 `Collections.singletonMap` 方法创建的,它会创建一个只包含一个键值对的 `Map` 对象。
使用示例:
```java
Map<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
List<Map<String, Integer>> list = mapToList(map);
System.out.println(list); // 输出: [{a=1}, {b=2}, {c=3}]
```
阅读全文