取List<Map>中具体key的所有值
时间: 2024-03-12 21:48:07 浏览: 17
可以通过遍历List中的每一个Map,然后获取指定key的值,将其存储到新的List中,最后返回新的List。示例代码如下:
```java
public List<Object> getListOfValuesByKey(List<Map<String, Object>> list, String key) {
List<Object> values = new ArrayList<>();
for (Map<String, Object> map : list) {
Object value = map.get(key);
if (value != null) {
values.add(value);
}
}
return values;
}
```
其中,`list`为包含多个`Map`的列表,`key`为要获取值的`Map`中的键名,返回的`values`为所有值的列表(注意,如果某个`Map`中不存在该键,则不会将其值添加到`values`中)。
相关问题
取List<Map>中具体key的所有值 使用stream
使用Java 8中的Stream API,可以更简洁地实现遍历List中每一个Map,获取指定key的值,并将其存储到新的List中的操作。示例代码如下:
```java
public List<Object> getListOfValuesByKey(List<Map<String, Object>> list, String key) {
return list.stream()
.map(map -> map.get(key))
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
```
其中,`list`为包含多个`Map`的列表,`key`为要获取值的`Map`中的键名,返回的`List`为所有值的列表。使用`stream()`将`List`转换成流,然后使用`map()`对每一个`Map`获取指定key的值,使用`filter()`过滤掉值为`null`的元素,最后使用`collect()`将流转换成列表并返回。
list<map> 获取 key value
list<map> 是一种存储数据的方式,它是由多个 map 组成的列表。在 list<map> 中获取 key value 的方式就是通过遍历 map,获取对应 key 的 value 值。
假设有以下 list<map>:
```c++
#include <iostream>
#include <string>
#include <map>
#include <list>
using namespace std;
int main() {
list<map<string, int>> data = {
{{"apple", 1}, {"banana", 2}},
{{"cherry", 3}, {"durian", 4}}
};
return 0;
}
```
要获取 apple 对应的 value 值,可以使用如下代码:
```c++
int apple_value = 0;
for (auto& map_item : data) {
auto iter = map_item.find("apple");
if (iter != map_item.end()) {
apple_value = iter->second;
break;
}
}
```
首先使用 for 循环遍历 list<map> 中的每一个 map。然后通过调用 find() 函数查找对应的 key "apple",如果找到了,就将对应的 value 值赋值给 apple_value 并退出循环。
类似地,可以根据需求获取 list<map> 中其他 key 的 value 值。