如何从 HashMap<String, String> 中过滤“Null”值?

新手上路,请多包涵

在 map 之后,将两个键值对都作为 String,编写一个逻辑来过滤 Map 中的所有空值而不使用任何外部 API?

除了遍历整个地图并过滤掉值(遍历整个地图并获取条目对象并丢弃这些对)之外,还有其他方法吗?

         Map<String,String> map = new HashMap<String,String>();

        map.put("1", "One");
        map.put("2", "Two");
        map.put("3", null);
        map.put("4", "Four");
        map.put("5", null);
        //Logic to filer values
        //Post filtering It should print only ( 1,2 & 4 pair )

原文由 RaBa 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
1 个回答

为此,您可以使用 Java 8 方法 Collection.removeIf

 map.values().removeIf(Objects::isNull);

这删除了所有为空的值。

在线演示

这是因为调用 .values() 为 HashMap 返回一个集合,该集合将修改委托回 HashMap 本身,这意味着我们对 removeIf() 的调用实际上改变了 HashMap(这不会适用于所有 Java 地图)

原文由 Ferrybig 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题