HashMap は、キーのハッシュ値と Entry[] 配列のサイズをハッシュして、Entry 配列の添字位置を取得します。デバッグ中に、(ハッシュ値が異なる) 2 つの異なるキーがあることがわかりました。しかし、indexFor の後では、インデックスの添え字が同じであるということは、異なるキー値と異なるハッシュ値を持つ 2 つの値が連結されてリンク リストを形成することを意味します。以前他の人が書いた記事を読んだ覚えがありますが、ハッシュ値は同じだけどキー値が違うとみんな言ってました。リンクリストを形成できるのは2つの値だけですが、実際にデバッグしてみると違う結果が出ました。誰か取ってくれませんか問題を見てみましょう
リーリー
異なる
Object
可能有相同的hashCode
(反过来一定不同,除非hashCode
或equals
定义错了);不同的
hashCode
可能有相同的index
(そして、必ず異なるものでなければなりません)、その場合にのみ、リンクされたリストが形成されます。ここでの
hashCode
可能跟你看到的某些文章的hash
は同じ意味ではありません。