検索

ホームページ  >  に質問  >  本文

java - HashMapのindexFor(int h, int length)に関する疑問

リーリー

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

迷茫迷茫2775日前693

全員に返信(1)返信します

  • PHP中文网

    PHP中文网2017-05-17 10:01:13

    リーリー

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

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

    返事
    0
  • キャンセル返事