Does Groovy have method to merge 2 maps?

fedor.belov picture fedor.belov · Nov 11, 2012 · Viewed 39.8k times · Source

First map is default options [a: true, b: false]. Second map - options passed by user [a:false]. Does Groovy has maps merge method to obtain [a: false, b:false]?

It's not problem to implement it in Groovy. I'm asking about method out of the box

Answer

tim_yates picture tim_yates · Nov 11, 2012

You can use plus:

assert [ a: true, b: false ] + [ a: false ] == [ a: false, b: false ]

Or left shift:

assert [ a: true, b: false ] << [ a: false ] == [ a: false, b: false ] 

The difference is that << adds the right hand map into the left hand map. When you use +, it constructs a new Map based on the LHS, and adds the right hand map into it