何度も読みましたが、明確にしたかっただけです。
HashMap は Arraylists の配列と呼ばれます。
配列サイズはハッシュマップのバケットサイズだと言えますか
注: 1 つだけ訂正します。
1) バケットの数は配列サイズに相当します。 2) バケット サイズは Arraylist のサイズです。
ご不便をおかけして申し訳ありません。上記2点でよろしければ教えてください。
何度も読みましたが、明確にしたかっただけです。
HashMap は Arraylists の配列と呼ばれます。
配列サイズはハッシュマップのバケットサイズだと言えますか
注: 1 つだけ訂正します。
1) バケットの数は配列サイズに相当します。 2) バケット サイズは Arraylist のサイズです。
ご不便をおかけして申し訳ありません。上記2点でよろしければ教えてください。
いいえ。あなたの例えでは、各バケットは1つArrayList
であるため、バケットサイズはArrayList
sのサイズになります。優れた実装では、それらすべてをほぼ同じサイズに保ち、かなり小さくするように努めます。
バケットの数は配列の長さです。各バケットはArrayListであるため、バケットサイズ(バケットごとに異なる場合があります)は、そのArrayListの長さになります。そのサイズが複数になる唯一の理由は、HashMapに追加された2つのオブジェクトに対して計算されたハッシュコードが衝突する場合です(nb、これはおそらくによって返される値と同じではありませんがhashCode()
、の容量に関連して生成されます/マップ内のバケットの数)。
実際、それよりも複雑です。たとえば、JavaHashMap
はリンクリストの配列として実装されます。そして、そのモデルでは、固定バケットサイズはまったくありません。
文献を読むと、さまざまな特性を持つハッシュテーブルを編成するさまざまな方法があることがわかります。ハッシュテーブルに関するウィキペディアのページは、読み始めるのに適した場所です。