【问题标题】:Groovy remove null elements from a mapGroovy 从地图中删除空元素
【发布时间】:2019-09-05 20:49:38
【问题描述】:

我正在从另一台服务器获取我的方法中的地图,并且我有一些空值,我想删除这些值,因为我在以下过程中遇到了这些值:

我的地图看起来像:

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

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

有什么想法吗?

谢谢

【问题讨论】:

    标签: groovy null maps remove-if


    【解决方案1】:

    编辑

    Groovy 的方式,就是过滤你想要的条目:

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

    上一个答案:

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

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

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

    【讨论】:

    • 我遇到了这个问题:groovy.lang.MissingMethodException:没有方法签名:java.util.LinkedHashMap.removeAll() 适用于参数类型:(DUMMY$_closure1$_closure2) 值:[DUMMY $_closure1$_closure2@303fb448] 可能的解决方案:remove(java.lang.Object), remove(java.lang.Object), remove(java.lang.Object, java.lang.Object), replaceAll(java.util.function .BiFunction), replaceAll(java.util.function.BiFunction)
    • @rasilvap 我已经编辑了经典 Groovy 方式的答案。
    猜你喜欢
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 2017-06-15
    • 2020-05-22
    • 2013-09-07
    • 2020-05-27
    相关资源
    最近更新 更多