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()
,谢谢您的快速回答!你应该扪心自问,你会怎么做呢?现在我明白了。在下一个问题之前,我会问自己。