Groovy从地图上删除空元素

ras*_*vap 2 maps null groovy remove-if

我正在从另一台服务器的方法中获取映射,并且我有一些空值,我想删除那些空值,因为在以下过程中我在努力处理这些值:

我的地图看起来像: 在此处输入图片说明

我已经完成了下一个代码,但是没有令人满意的结果:

map.values().removeAll(Collections.singleton(null))
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

谢谢

cfr*_*ick 5

编辑

Groovy的方法是过滤所需的条目:

def map = [a:42, b:null]
def cleanMap = map.findAll{ it.value!=null }
println cleanMap
// => [a:42]
Run Code Online (Sandbox Code Playgroud)

先前的答案:

似乎可用于Jdk8 / Groovy 2.5,但不适用于OP

要删除所有带有值的元素,请null直接在地图上删除:

def map = [a:42, b:null]
map.removeAll{ it.value == null }
println map
// => [a:42]
Run Code Online (Sandbox Code Playgroud)