java - HashMapのindexFor(int h, int length)に関する疑問
迷茫
迷茫 2017-05-17 09:59:13
0
1
635
リーリー

HashMap は、キーのハッシュ値と Entry[] 配列のサイズをハッシュして、Entry 配列の添字位置を取得します。デバッグ中に、(ハッシュ値が異なる) 2 つの異なるキーがあることがわかりました。しかし、indexFor の後では、インデックスの添え字が同じであるということは、異なるキー値と異なるハッシュ値を持つ 2 つの値が連結されてリンク リストを形成することを意味します。以前他の人が書いた記事を読んだ覚えがありますが、ハッシュ値は同じだけどキー値が違うとみんな言ってました。リンクリストを形成できるのは2つの値だけですが、実際にデバッグしてみると違う結果が出ました。誰か取ってくれませんか問題を見てみましょう

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全員に返信(1)
Ty80

リーリー

異なるObject可能有相同的hashCode(反过来一定不同,除非hashCodeequals定义错了);
不同的hashCode可能有相同的index(そして、必ず異なるものでなければなりません)、その場合にのみ、リンクされたリストが形成されます。

ここでのhashCode可能跟你看到的某些文章的hashは同じ意味ではありません。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!