List<Map<String, Object>> 使用stream替换map指定key包含"-"好的value值
时间: 2024-03-13 11:20:32 浏览: 9
你好,关于你的问题,可以使用 Java 8 的 Stream API 来进行替换。具体实现如下:
```
list.stream()
.map(map -> {
map.put("key", map.get("key").toString().replace("-", ""));
return map;
}).collect(Collectors.toList());
```
这里假设你要替换的 key 是 "key",可以根据实际情况进行修改。这个方法会返回一份新的列表,原来的列表不会被修改。
相关问题
List<Map<String, Object>> 使用stream替换map指定的value值
您可以使用Java 8中的Streams API和Lambda表达式来替换Map中指定的value值。示例代码如下:
```java
List<Map<String, Object>> list = new ArrayList<>();
// 添加Map对象到列表中
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "Alice");
map1.put("age", 25);
map1.put("salary", 5000.0);
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "Bob");
map2.put("age", 30);
map2.put("salary", 8000.0);
list.add(map2);
// 使用Stream替换Map中指定的value值
list.stream().forEach(map -> {
map.compute("salary", (key, value) -> (double) value * 1.1);
});
// 打印修改后的Map列表
list.stream().forEach(System.out::println);
```
这段代码将List中所有Map对象的salary键对应的value乘以1.1。
注意,使用compute方法来修改Map的value需注意以下几点:
- compute方法需要传入两个参数:key和计算函数。
- 计算函数必须是线程安全的,不然在多线程情况下可能导致错误。
- 如果计算函数返回null,则会从Map中删除该键值对。
使用stream获取List<Map<String,Object>>中Map指定key的value
可以使用Java 8中的Stream API来获取List<Map<String,Object>>中Map指定key的value。以下是一个示例代码:
```java
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "John");
map1.put("age", 25);
map1.put("gender", "Male");
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "Mary");
map2.put("age", 30);
map2.put("gender", "Female");
list.add(map1);
list.add(map2);
// 获取List<Map<String,Object>>中Map指定key的value
List<Object> values = list.stream()
.map(map -> map.get("name"))
.collect(Collectors.toList());
System.out.println(values); // 输出 [John, Mary]
```
以上代码演示了如何使用Stream API来获取List<Map<String,Object>>中Map指定key的value。在处理时,我们使用`map()`方法将List中的每个Map转换为其指定key的value,最后使用`collect()`方法将结果转换为List类型的数据。