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