gpt4 book ai didi

java - map 中出现 null 的奇怪结果

转载 作者:行者123 更新时间:2023-12-02 06:54:01 35 4
gpt4 key购买 nike

我运行了以下代码

public class MapTest {    
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
map.put(null, null);
System.out.println(map.get(null));
System.out.println(map.containsKey(null));
System.out.println(map.containsValue(null));
}
}

它给出了这个输出

null
true
true

但是,当我删除行 map.put(null, null) 时, map.get(null)仍然返回 null,但是 map.containsKey(null) & map.containsValue(null)返回false 。现在,如果值 null没有与任何键关联,怎么可能map.get(null)仍然返回null

最佳答案

Map 接口(interface)的 Javadoc 指出 get对于任何没有映射的键,应该返回 null:

Returns the value to which the specified key is mapped, or null if this map contains no mapping for the key.

但请注意,某些 Map 实现可能不允许 null 键,在这种情况下 map.get(null) 将抛出 空指针异常ConcurrentHashMap 就是一个例子。 .

关于java - map 中出现 null 的奇怪结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17638048/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com