下面的 map ,有两个键值对作为字符串,编写一个逻辑来过滤来自 map 的所有空值而不使用任何外部API?
除了遍历整个 map 并过滤掉值(遍历整个 map 并获取条目对象并丢弃这些对)之外,还有其他方法吗?
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 )
最佳答案
您可以使用 Java 8 方法 Collection.removeIf
为此目的:
map.values().removeIf(Objects::isNull);
这删除了所有为空的值。
这是因为为 HashMap 调用 .values()
会返回一个集合,该集合将修改委托(delegate)给 HashMap 本身,这意味着我们对 removeIf()
的调用> 实际上改变了 HashMap(这不适用于所有 java Map)
关于java - 如何从 HashMap<String, String> 中过滤 "Null"值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35863581/