在某个条件下在地图中保存多个值

时间:2013-11-29 12:53:43

标签: groovy

我有一个如下记录(两组值)

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' ] ]

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

[ [ name1:'value1', check:210.0, name2:'value4', name3:'value3' ],
  [ name1:'value1', check:110.0, name2:'value4', name3:'value3' ] ]

我试过

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,但似乎没有达到我的目的

1 个答案:

答案 0 :(得分:0)

假设你的意思是:

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 }

仅保留check>这些条目0