Map.containsKey()在没有空值的Map中有用吗?

Eli*_*337 6 java performance hashmap

在下面的代码中:

if (map.containsKey(key)) {
    map.remove(key);
}
Run Code Online (Sandbox Code Playgroud)

查看性能,Map.containsKey()在尝试从地图中删除值之前首先进行检查是否有用?

同样的问题是检索值,如果您知道地图不包含值,首先执行包含检查是否有用null

if (map.containsKey(key)) {
    Object value = map.get(key);
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*oun 6

removenull如果没有映射则返回key没有异常将被抛出:

public V remove(Object key)
Run Code Online (Sandbox Code Playgroud)

if在尝试删除之前,我没有看到任何理由执行该操作key,也许可能是因为您想要计算从地图中删除了多少项目..

在第二个示例中,null如果key不存在,您将获得.是否检查,取决于您的逻辑.

尽量不要浪费你的时间考虑性能,containsKeyO(1)时间复杂度:

此实现为基本操作(和)提供恒定时间性能getput