如何判断HashMap中是否存在null键?
如何判断HashMap中是否存在null键?
嘿,这个问题其实挺常见的,我来给你分享几种简单靠谱的方法:
方法一:直接使用containsKey()方法(推荐)
这是最直接高效的方式,HashMap本身就支持存储一个null键,所以你只需要调用它的containsKey(null)方法,会直接返回布尔值——存在null键就返回true,不存在则返回false。
举个代码例子:
HashMap<String, Integer> myMap = new HashMap<>(); myMap.put(null, 2024); boolean hasNullKey = myMap.containsKey(null); // 这里会返回true
方法二:遍历键集合判断(不推荐,仅作了解)
如果你想手动遍历验证的话,可以通过map.keySet()获取所有键的集合,然后循环检查是否有null值。不过这种方法效率比containsKey()低很多(前者是O(1)时间复杂度,后者是O(n)),所以日常开发里优先用第一种方法。
代码示例:
boolean hasNullKey = false; for (Object key : myMap.keySet()) { if (key == null) { hasNullKey = true; break; // 找到就直接跳出循环,不用继续遍历了 } }
另外补充个小知识点:HashMap里只能存在一个null键,如果你多次调用put(null, 值),后面的值会覆盖前面的,但键始终只有一个null,所以判断的时候不用考虑多个null键的情况~
内容的提问来源于stack exchange,提问作者Sunil Keshari
相关产品推荐
相关产品推荐

