List<Map> 获取key对应的值的几种方式
时间: 2024-12-21 19:28:07 浏览: 4
根据某个属性对List中的所有对象分组,该属性值相同的对象分到一个组
获取`List<Map>`中每个map对应key的值,可以有几种常见的方式:
1. **迭代法(For-Each循环)**:
```java
for (Map<String, Object> map : list) {
String value = map.get(key); // 如果key存在,则返回对应的值
if (value != null) {
System.out.println(value);
}
}
```
2. **流式操作(Stream API)**:
```java
list.stream()
.flatMap(map -> map.entrySet().stream())
.filter(entry -> entry.getKey().equals(key))
.map(Map.Entry::getValue)
.findFirst() // 可能返回Optional,需要处理空值
.orElse(null);
```
3. **增强for循环和getOrDefault**:
```java
for (Map<String, Object> map : list) {
Object value = map.getOrDefault(key, defaultValue); // 使用默认值防止null异常
if (value != null) {
System.out.println(value);
}
}
```
以上每种方法都需要先判断key是否存在,因为`get()`方法如果key不存在会返回null。
阅读全文