私は何度もそれを読んできました。HashMap実装の概念
HashMapはArraylistsの配列と呼ばれます。
は、我々はその配列のサイズは、ハッシュマップ
注バケットサイズであると言うことができます:私はちょうど1つの補正をしたい:
1)バケットの番号は、配列のサイズ 2)バケットに相当しますサイズはArraylistのサイズです。
ご迷惑をおかけして申し訳ありません。上記の2つの点が正しいかどうか教えてください。
私は何度もそれを読んできました。HashMap実装の概念
HashMapはArraylistsの配列と呼ばれます。
は、我々はその配列のサイズは、ハッシュマップ
注バケットサイズであると言うことができます:私はちょうど1つの補正をしたい:
1)バケットの番号は、配列のサイズ 2)バケットに相当しますサイズはArraylistのサイズです。
ご迷惑をおかけして申し訳ありません。上記の2つの点が正しいかどうか教えてください。
いいえ、類義語では、各バケットはArrayList
となるため、バケットサイズはArrayList
のサイズになります。良い実装は、それらのすべてをおおよそ同じサイズに保ち、かなり小さくするよう努めます。
バケットの数は、アレイの長さです。各バケットはArrayListであるため、バケットサイズ(バケットごとに異なる場合があります)は、そのArrayListの長さになります。そのサイズが複数である唯一の理由は、HashMapに追加された2つのオブジェクトに対して計算されたハッシュコードが衝突する場合です(nb:hashCode()
によって返された値とおそらく同じではありませんが、 /マップのバケツの数)。
実際、それよりも複雑です。たとえば、Java HashMap
は、リンクされたリストの配列として実装されています。そのモデルでは、固定バケットサイズはまったくありません。
文書を読んだ場合、さまざまな特徴を持つハッシュテーブルを整理するさまざまな方法があることがわかります。 Wikipedia page on hash tablesは読書を開始するのに適しています。
HashMapのバケットは、ArrayListよりもLinkedListに似ていますが... –