3

HashMapのドキュメントには、次のステートメントが含まれています。

したがって、反復パフォーマンスが重要な場合は、初期容量を高く設定しすぎない(または負荷率を低く設定しすぎない)ことが非常に重要です。

誰か説明してもらえますか?HashMapの負荷率を変更または影響する方法がわかりません

4

3 に答える 3

2

初期容量が大きすぎたり、負荷率が低すぎたりすると、ハッシュ テーブルのエントリがほとんど空になります。これにより衝突の可能性が減少しますが (したがって、平均ルックアップ パフォーマンスが向上します)、ハッシュ テーブルのキー/値/アイテムを反復処理するには、より多くの空のスロットをスキップする必要があります。

他の人が説明したように、ハッシュ テーブル オブジェクトを構築するときに、負荷率と初期容量を指定できます。

于 2012-10-03T17:14:57.387 に答える
2

HashMap をコンストラクタ引数の一部として宣言すると、初期容量と負荷係数の両方を指定できます。

 HashMap(int initialCapacity, float loadFactor) 
     Constructs an empty HashMap with the specified initial capacity and load factor.

また、この SO スレッドを参照して、負荷率と初期容量に関する洞察を得ることができます。

于 2012-10-03T17:01:12.810 に答える
0

ハッシュテーブルの背後には多くの理論があり、特定の入力セット予測に対して「良い」ハッシュテーブルを作成するものは何ですか?ウィキペディアの記事(特にリンクされている「負荷係数」セクション) から始めます。

于 2012-10-03T17:01:39.940 に答える