java - HashMap 中的键存在检查

标签 java hashmap

是否总是需要检查 HashMap 中的键是否存在?

我有一个包含 1000 个条目的 HashMap,我正在考虑提高效率。 如果 HashMap 被非常频繁地访问,那么在每次访问时检查 key 是否存在将导致很大的开销。相反,如果 key 不存在并因此发生异常,我可以捕获异常。 (当我知道这种情况很少发生时)。这将使对 HashMap 的访问减少一半。

这可能不是一个好的编程习惯,但它会帮助我减少访问次数。还是我在这里遗漏了什么?

[更新] 我在 HashMap 中没有空值。

最佳答案

您曾经存储过空值吗?如果没有,你可以这样做:

Foo value = map.get(key);
if (value != null) {
    ...
} else {
    // No such key
}

否则,可以在返回空值时检查是否存在:

Foo value = map.get(key);
if (value != null) {
    ...
} else {
    // Key might be present...
    if (map.containsKey(key)) {
       // Okay, there's a key but the value is null
    } else {
       // Definitely no such key
    }
}

关于java - HashMap 中的键存在检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3626752/

相关文章:

Java8 : Create HashMap with character count of a String

java - HashMap 中的泛型似乎没有被一致使用

java - Checkstyle Java 泛型 : '?' is not preceded with whitespace

list - 从 HashMap 列表中提取值 Clojure

java - 从 XmlStreamReader 解码 JAXB 会导致 null 对象

java - Maven 无法构建 pom

java - 插入时映射和列表值不明确 : java

java - 在 Java 8 中替换映射中列表列表中的值

java - 不幸的是 MyApp 已停止。我该如何解决这个问题?

在 Windows 7 64 位上使用 Java 32 位的 Eclipse 32 位