list<map> 如何使用 stream().map(
时间: 2024-01-30 22:11:39 浏览: 27
使用stream().map()方法可以对List<Map>进行操作,将其中的元素进行映射转换。下面是一个示例:
```java
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "Alice");
map1.put("age", 25);
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "Bob");
map2.put("age", 30);
list.add(map2);
List<String> names = list.stream()
.map(map -> (String) map.get("name"))
.collect(Collectors.toList());
System.out.println(names); // 输出:[Alice, Bob]
```
在上面的示例中,我们首先创建了一个List<Map>,其中每个Map表示一个人的信息。然后使用stream()方法将List转换为流,接着使用map()方法将每个Map中的"name"键对应的值提取出来,最后使用collect()方法将提取出来的值收集到一个新的List中。
相关问题
list<Map> 转stream流计算
假设我们有一个 `List<Map<String, Integer>>`,下面是将其转换为 `Stream` 的示例代码:
```java
List<Map<String, Integer>> list = new ArrayList<>();
// 添加数据
Map<String, Integer> map1 = new HashMap<>();
map1.put("a", 1);
map1.put("b", 2);
map1.put("c", 3);
list.add(map1);
Map<String, Integer> map2 = new HashMap<>();
map2.put("a", 4);
map2.put("b", 5);
map2.put("c", 6);
list.add(map2);
// 将 List<Map> 转为 Stream<Map>
Stream<Map<String, Integer>> stream = list.stream();
// 对每个 Map 进行计算
stream.forEach(map -> {
int sum = map.values().stream().mapToInt(Integer::intValue).sum();
System.out.println("Map " + map + " 的值之和为:" + sum);
});
```
输出结果为:
```
Map {a=1, b=2, c=3} 的值之和为:6
Map {a=4, b=5, c=6} 的值之和为:15
```
在上面的代码中,我们首先将 `List<Map>` 转换为 `Stream`,然后对每个 `Map` 执行计算。在计算中,我们使用了 `map.values()` 将 `Map` 中的值转换为 `Stream<Integer>`,然后使用 `mapToInt` 将 `Stream<Integer>` 转换为 `IntStream`,最后使用 `sum` 方法计算和。
list<map> 使用stream查询指定的值
可以使用 Java 8 的 Stream API 配合 lambda 表达式来查询 list 中的 map 对象的指定值。示例代码如下:
假设 list 是一个 List<Map<String, Object>> 类型的对象,其中每个 Map 对象都包含 key1 和 key2 两个键。现在我们要查询 list 中所有 key1 值为 "value1" 的 map 对象的 key2 值。
```java
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("key1", "value1");
map1.put("key2", "result1");
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("key1", "value2");
map2.put("key2", "result2");
list.add(map2);
List<Object> result = list.stream()
.filter(map -> map.get("key1").equals("value1"))
.map(map -> map.get("key2"))
.collect(Collectors.toList());
System.out.println(result); // 输出 [result1]
```
这里我们使用了 filter 方法过滤出 key1 值为 "value1" 的 map 对象,然后使用 map 方法将这些 map 对象中的 key2 值提取出来,最后使用 collect 方法将所有结果收集到一个列表中。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![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_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)