Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

like image 707
rasilvap Avatar asked Apr 15 '19 20:04

rasilvap


People also ask

Can map contains null values?

Map doesn't allow duplicate keys, but it allows duplicate values. HashMap and LinkedHashMap allows null keys and null values but TreeMap doesn't allow any null key or value.

Does groovy have null?

In Groovy, there is a subtle difference between a variable whose value is null and a variable whose value is the empty string. The value null represents the absence of any object, while the empty string is an object of type String with zero characters.


1 Answers

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]
like image 59
cfrick Avatar answered Oct 18 '22 23:10

cfrick