2012-01-27 3 views

答えて

3

のような結果のマップを取得したいと思います理解します:

map1 + map2 

マップを結合し、右側のマップは、共通のキーを上書きしますE左側のマップ..

はそう:あなたが欲しい

[ a:1, b:2 ] + [ b:3, c:4 ] == [ a:1, b:3, c:4 ] 

は、マップのリストです。 1つのオプションは次のとおりです。

リストにMAP1をラップして、このリストにMAP2を追加
[ map1 ] + map2 

assert [[ name: 'John'], [ name: 'Jane']] == [ map1 ] + map2 
+0

"地図のリスト"を修正していただきありがとうございます。私はあなたの説明を理解していますが、この例では一貫性のない結果が表示されているように、この例では混乱があります: ' –

+0

' def mapOne = [[id:1、firstName: 'Jimmy]]、[id:2、firstName:' Robert '] ] \t DEF mapTwo = [ID:1とLastName: 'ページ'] \t DEF mapThree = [ID:2とLastName 'プラント'] \t DEF mapFour = [ID:1とLastName: 'ページ'] [ID:1、firstName: 'Jimmy']、[id:2、firstName: 'Robert']、[id:1、lastName: 'Page']、[ id:2、lastName: 'Plant']、[id:1、lastName: 'Page']] \tアサートmapThree + mapFour == [id:1、lastName: 'Page'] ' –

+0

が最初にアサートされたとき、 'mapOne'はすでにマップのリストなので、他のマップをリストに追加するだけです。 2番目のアサートでは、 'mapThree'と' mapFour'はマップなので、私の答えで記述するキーの上書きが発生し、 'mapFour'で終わるだけです –

関連する問題