Java 为什么hashmap中的空键总是放在第一个bucket中?

Java 为什么hashmap中的空键总是放在第一个bucket中?,java,hashmap,Java,Hashmap,好处是什么?为什么我们需要一些特殊的空方法,比如putForNullKey(V值),getForNullKey()等等?好处是什么?您无法计算空键的hashCode,因此必须将所有空键放在同一个bucket中。你不妨把它们放在第一个桶里 对于空键,您有特定的方法,因为它们的逻辑不同于非空键。无论如何,这些方法都是私有的,因此对HashMap的用户来说应该无关紧要。对于空键和非空键,公共API是相同的。这不是真正的好处,而是“必须具备的”;无法为空值计算.hashCode();同样,您不能在nul

好处是什么?为什么我们需要一些特殊的空方法,比如
putForNullKey(V值)
getForNullKey()
等等?好处是什么?

您无法计算空键的hashCode,因此必须将所有空键放在同一个bucket中。你不妨把它们放在第一个桶里


对于空键,您有特定的方法,因为它们的逻辑不同于非空键。无论如何,这些方法都是私有的,因此对
HashMap
的用户来说应该无关紧要。对于空键和非空键,公共API是相同的。

这不是真正的好处,而是“必须具备的”;无法为
空值计算
.hashCode()
;同样,您不能在
null
上调用
.equals()
,谢谢您的快速回答!你应该扪心自问,你会怎么做呢?现在我明白了。在下一个问题之前,我会问自己。