List<Map<String, Object>> 替换map指定key包含“-”号的value值
时间: 2023-11-11 10:00:51 浏览: 67
你好,感谢您的提问。针对您的问题,您可以使用以下代码来替换List中Map指定key包含“-”号的value值:
```
List<Map<String, Object>> list = new ArrayList<>();
// 初始化List和Map
for (Map<String, Object> map : list) {
for (String key : map.keySet()) {
if (key.contains("-")) {
map.put(key, "new value");
}
}
}
```
这段代码会遍历List中的每个Map,检查Map中的每个key是否包含“-”号,如果包含则将对应的value值替换成“new value”。
希望可以帮到您,如果还有其他问题请随时提问。
相关问题
List<Map<String, Object>> 使用stream替换map指定key包含"-"好的value值
你好,关于你的问题,可以使用 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中删除该键值对。
阅读全文