Search code examples
groovynullmapsremove-if

Groovy remove null elements from a map


I am getting a map in my method from another server and I have some null values, I wanted to remove those ones, because I am struggling with those values in the following process:

My map looks something like: enter image description here

I had done the next code, but without satisfactory results:

map.values().removeAll(Collections.singleton(null))

Any ideas?

Thanks


Solution

  • Edit

    The Groovy way, is to filter the entries you want:

    def map = [a:42, b:null]
    def cleanMap = map.findAll{ it.value!=null }
    println cleanMap
    // => [a:42]
    

    Previous answer:

    Seems to work with Jdk8/Groovy 2.5, but not for OP

    To remove all elements with a value with null, remove on the map directly:

    def map = [a:42, b:null]
    map.removeAll{ it.value == null }
    println map
    // => [a:42]