小编p_n*_*air的帖子

从 Map 获取列表并使用 groovy 进行过滤

我正在尝试从地图中获取一个列表,并基于 id 的列表,并希望根据年龄(年龄 > 35)检索值(列表)

def people = [
"1": [[name:'Bob', age: 32, gender: 'M'],[name:'Johnny', age: 36, gender: 'M']],
"3": [[name:'Claire', age: 21, gender: 'F'],[name:'Amy', age: 54, gender:'F']],
"4": [[name:'John', age: 41, gender: 'F'],[name:'Sam', age: 54, gender:'F']]
]

def id = ["1","3"]


def age = people.subMap(id).values().findAll{it.age > 35}
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

Cannot compare java.util.ArrayList with value '[32, 36]' and java.lang.Integer with value '35'
Run Code Online (Sandbox Code Playgroud)

如何获取所有年龄 > 35 岁的人员的名单?

iteration groovy list hashmap

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

groovy ×1

hashmap ×1

iteration ×1

list ×1