Java List<Map>类型的数据,给每一行都赋值key=name value=1,使用lambda,简单点
时间: 2024-09-13 15:10:53 浏览: 48
在Java中,如果你有一个`List<Map<String, Integer>>`类型的集合,并且想要为每一行的`Map`设置键为`"name"`和值为`1`,可以使用lambda表达式结合Java 8的Stream API来简洁地完成这个任务。下面是如何做到这一点的示例代码:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Map<String, Integer>> list = new ArrayList<>();
// 假设已经有了多行数据,但目前Map为空
// 这里我们只添加一行作为示例
Map<String, Integer> rowMap = new HashMap<>();
list.add(rowMap);
// 使用forEach和lambda表达式为每行的Map设置键值对
list.forEach(row -> row.put("name", 1));
// 如果想要验证结果,可以打印出来
list.stream()
.map(map -> map.get("name"))
.forEach(System.out::println);
}
}
```
在这个代码中,`list`是一个`List<Map<String, Integer>>`类型的变量,它包含了一个或多个`Map`对象。我们通过`forEach`方法遍历这个`List`,对于`List`中的每一个`Map`对象,我们使用lambda表达式`row -> row.put("name", 1)`来调用`Map`的`put`方法,将键`"name"`和值`1`放入`Map`中。
如果你想要通过流的方式来完成这个操作,并且处理这些Map,你可以使用`stream()`方法,然后通过`map`和`forEach`来处理,如上面的`map(map -> map.get("name"))`和`forEach(System.out::println)`部分所示。
阅读全文