ava使用stream流将List<Map>集合中name属性和age属性组合成一个新的map集合
时间: 2024-03-02 19:48:31 浏览: 73
maven 下载到 maven库下边的 gui.ava.html2image0.9 及jar 可以直接使用
可以使用Java 8中提供的Stream API来实现将List<Map>集合中的name属性和age属性组合成一个新的Map集合,代码如下:
```java
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "Tom");
map1.put("age", 20);
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "Jane");
map2.put("age", 25);
list.add(map2);
Map<String, Object> map3 = new HashMap<>();
map3.put("name", "John");
map3.put("age", 30);
list.add(map3);
Map<String, String> result = list.stream()
.collect(Collectors.toMap(
map -> map.get("name").toString(),
map -> map.get("age").toString()
));
System.out.println(result);
```
运行结果为:
```
{Jane=25, John=30, Tom=20}
```
在这个例子中,我们将三个Map集合存储到一个List中。使用Stream API中的`stream()`方法将List集合转换为Stream流,然后使用`collect()`方法将流转换为新的Map集合。在`collect()`方法中,我们使用了`Collectors.toMap()`方法来指定新Map集合中的key和value的生成方式。具体来说,我们使用了`map.get("name").toString()`来生成新Map中的key,即将原Map中的人名转换为字符串形式;使用`map.get("age").toString()`来生成新Map中的value,即将原Map中的年龄转换为字符串形式。最后,我们将新Map集合输出到控制台。
阅读全文