2016-08-14 36 views
1

ハッシュマップの負荷係数のデフォルト値は0.75fです。つまり、hasmapの容量の75%が満たされるとハッシュマップを再ハッシュします。ハッシュマップの負荷係数値が1より大きい場合

ここではどのように動作し、どのようにハッシュがうまくいくのでしょうか

(1)

答えて

2
私は例えば1より大きい負荷率の値を設定した場合、2言うことができますどのような

(スーパー(容量+ 1、2.0f、真の);)

あなたはすでに答えを持っています。

...ハッシュマップの容量の200%が満たされると、ハッシュマップを再ハッシュします。

ハッシングは同じように機能し、パフォーマンスに影響する小さな容量を使用します。初期容量を十分に大きくすると、負荷係数は決して作用しません。負荷係数は、マップのサイズを変更した場合にのみ適用されます。

注:実際の容量は、常に私はあなたがそれをしようと提案する。2.

の力です。

BTW荷重係数を変更すると、バケットが少なくなるため、要素の表示順序が変更されることがあります。セットまたはマップを印刷して比較しようとしています。

+0

@peter lawrey – Samar

0

JavaのHashMapは閉じたアドレス指定を使用しているため、ハッシュテーブル内の複数の要素がすべて同じ場所にハッシュされていると、Javaはそれらをすべて同じバケットにいくつかの補助データ構造で格納します。これにより、負荷率を任意に高くすることができる。これは、負荷係数が複数の値になることはありえない線形プロービングハッシュテーブルとは異なります。

+0

連鎖アドレッシングのように... –

+0

@mithatkonutはい、まさにです。 – templatetypedef

関連する問題