7

Java HashMap 実装には、Entry プライベート クラスに「next」メンバーがあります。キーの新しい値は古い値をオーバーライドするため、Entry クラスの「次の」メンバーの使用は何ですか。

static class Entry<K,V> implements Map.Entry<K,V> {
        final K key;
        V value;
        Entry<K,V> next;
        final int hash;

        /**
         * Creates new entry.
         */
        Entry(int h, K k, V v, Entry<K,V> n) {
            value = v;
            next = n;
            key = k;
            hash = h;
        }
   .....

}
4

3 に答える 3

7

next同じバケット内の次のエントリを参照します。

各バケットには複数のエントリを含めることができます。バケットには、1 つの特定のキーのエントリだけでなく、 some mod 2^n for someに等しいハッシュ コードを持つすべてのエントリが含まれます。in

于 2012-12-11T19:03:12.570 に答える
2

複数のアイテムが同じバケットにハッシュされる場合、バケットはすべてのアイテムを含むことができる必要があるため、多くの実装では、リストなどの何らかのコレクションになります。

于 2012-12-11T19:03:39.037 に答える
0

エントリをリンクするためのものです。

于 2012-12-11T19:04:38.357 に答える