为什么HashCode为零,包含与键相同的值的HashMap

Vir*_*nda 6 java hashmap

我注意到在Java中,hashCode因为HashMap它只包含键和值相同的条目,例如{1:1},{"abc":"abc"}等等总是为零.这个奇怪的行为背后有什么理由吗?

Lou*_*man 11

这是for 的规范的结果,其要求密钥的哈希码和值为xor'd.hashCode()Map.Entry

唯一可以告诉你为什么选择哈希码的人是最初编写它的人,虽然我的印象是Java后悔指定这个(坏)哈希函数.

  • 我确实知道我的头顶上的`Map.Entry`的hashCode实现. (5认同)
  • 我不敢问你是怎么了解这种行为的.在一分钟内回答这个问题非常令人印象深刻! (3认同)