Groovy 在一个条件下在映射中保留多个值

Groovy 在一个条件下在映射中保留多个值,groovy,Groovy,我有如下记录(两组值) 是否有办法根据检查条件删除条目。 如果检查值为0,我想删除该条目,并且只希望有检查值>=1的条目) 我试过了 def recordNew = [:] if (record.check.intValue() >= 1 ){ recordNew.put("name1",record.value1) recordNew.put("name2",record.value2) recordNew.put("name3",record.value3) }

我有如下记录(两组值)

是否有办法根据检查条件删除条目。 如果检查值为0,我想删除该条目,并且只希望有检查值>=1的条目)

我试过了

def recordNew = [:]
if (record.check.intValue() >= 1 ){
    recordNew.put("name1",record.value1)
    recordNew.put("name2",record.value2)
    recordNew.put("name3",record.value3)
}
只有一个条目

[ name1:'value1', check:110.0, name2:'value4', name3:'value3' ]
我也试过putAll,但似乎不符合我的目的

假设你的意思是:

record = [ [ name1:'value1', check:0.0, name2:'value2', name3:'value3'],
           [ name1:'value1', check:210.0, name2:'value4', name3:'value3' ],
           [ name1:'value1', check:110.0, name2:'value4', name3:'value3' ] ]
然后你可以做:

recordNew = record.findAll { it.check > 0 }

要仅保留那些带有
的条目,请检查
>0

您的
记录
行无效groovy。。。你贴对东西了吗?你刚才的意思是:
record=[[name1:'value1',check:0.0,name2:'value2',name3:'value3',[name1:'value1',check:210.0,name2:'value3',[name1:'value1',check:110.0,name2:'value4',name3:'value3']
是的,蒂姆,你是对的,recordNew应该是一个列表而不是一个地图?我忘了包括它。check.intValue()。谢谢蒂姆
record = [ [ name1:'value1', check:0.0, name2:'value2', name3:'value3'],
           [ name1:'value1', check:210.0, name2:'value4', name3:'value3' ],
           [ name1:'value1', check:110.0, name2:'value4', name3:'value3' ] ]
recordNew = record.findAll { it.check > 0 }