这里对 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/