16

私はハッシュマップについて読んでいました。

HashMap のインスタンスには、そのパフォーマンスに影響を与える 2 つのパラメーターがあります。初期容量と負荷係数です。容量は、ハッシュ テーブル内のバケットの数です。

Hashmap に 10 個のキーと値のペアがある場合。ハッシュコードが異なると仮定します。

それぞれが 1 つのバケットに常駐しますよね? または、1 つのバケットに複数のキーと値のペアを含めることができますか?

英語では、bucket多くのオブジェクトが存在できる大きなものを意味します。

4

3 に答える 3

2
Bucket with hashcode 1    Bucket with hashcode 2 and similar
  K and V                    K and V
  K and V                    K and V 

そのためhashCode()、キーの は KV ペアが入るバケットを決定し、hashCode検索中に KV ペアを見つけるために同じことが使用されます。

hashCode()定値を返すべきではありません。これは、すべてのオブジェクトが 1 つのバケットにあることを意味します。Mapそれは、そもそもa を使用しないのと同じです。すべてのキーと値のペアが同じバケットにあるため、Java はすべてのオブジェクトを反復処理してキーを見つける必要があります。

于 2013-09-05T12:46:40.433 に答える