Search code examples
dictionarygroovy

Does Groovy have method to merge 2 maps?


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


Solution

  • 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