list - 在具有键 "Oranges"的映射列表中查找所有值

标签 list groovy maps

这里对 groovy 还是个新手,但我正在尝试从我的 map 列表中的每个 map 中获取所有值,这些 map 的键等于“Oranges”

def resultSet = [
["Oranges":123456, "Apples": "none"],["Oranges":7890, "Apples": "some"]
]
def fruit = resultSet.each{
    it.findAll{key, value -> key == "Oranges"}.value
}

println fruit

因此,我希望结果为:[123456, 7890] 但我得到:[[Oranges:123456, Apples:none], [Oranges:7890, Apples:some]]

最佳答案

each 方法的返回值是集合本身。您想要对集合应用某种过滤器,而不是对它的每个项目应用过滤器。我建议使用 findResults,因为它会过滤掉 null 和空值:

def resultSet = [
    ["Oranges":123456, "Apples": "none"],
    ["Oranges":7890, "Apples": "some"]
]

def fruit = resultSet.findResults { it.Oranges?.value }

assert fruit == [123456, 7890]

关于list - 在具有键 "Oranges"的映射列表中查找所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45420670/

相关文章:

python - 如何对Python嵌套列表中的数据进行分类

python - 将字符串拆分为长度连续增加的子字符串 block

grails - Grails自动格式换行

grails - 有什么办法可以知道 grails 项目中使用的是哪个 groovy 版本?

r - 更新了 R "maps"包的世界地图?

python - 在 python 中对 x[n] 应用过滤器

groovy - 使用来自 Groovy 的供应商调用 Java 方法

google-maps - 我的 SaaS 产品有哪些 map 选择(例如 Google、Bing 等)?

java - 如何使用 Selenium Java 自动化 map ?或使用页面坐标。请告诉我是否还有其他方法可以自动化 map

python函数更改列表值