在 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 许可协议
为此,您可以使用 Java 8 方法
Collection.removeIf
:这删除了所有为空的值。
在线演示
这是因为调用
.values()
为 HashMap 返回一个集合,该集合将修改委托回 HashMap 本身,这意味着我们对removeIf()
的调用实际上改变了 HashMap(这不会适用于所有 Java 地图)