在Map中为键添加值

时间:2013-12-06 15:00:47

标签: map groovy

我有记录

record = [ [ name1:'value1', name2:'value2', name3:'value3' ],
           [ name1:'value6', name2:'value7', name3:'value8' ] ] 

我想再添加两个键/值对,其值为boolean(true / false),如下所示

record = [ [ name1:'value1', name2:'value2', name3:'value3', name4:false, name5:true ],   
           [ name1:'value6', name2:'value7', name3:'value8', name4:false, name5:true ] ]

当我尝试使用添加或放置函数时,似乎无法工作(替换现有值或不执行任何操作)

2 个答案:

答案 0 :(得分:1)

只是做:

record = record.collect { it + [ name4:false, name5:true ]  }

或者您也可以这样做:

record = record*.plus( name4:false, name5:true )

答案 1 :(得分:0)

要添加上面的Patricks答案(+1),Map包含的集合不是列表,因此所有键都必须是唯一的。因此,您无法直接为单个键分配多个值。

在众多解决方案中,您也可以保存对象:

Map<String, myObject>

包含许多不同的值,这仍将保持集合的唯一性,因为只有一个键。