0

13 個のアイテムを格納できることがわかっているハッシュ テーブルがある場合、テーブルを適切なサイズに初期化するにはどうすればよいですか? 負荷率は 2/3 以下である必要があると本で読みました。これは、任意の時点でテーブル内のアイテムの最大数が 13 になることが既にわかっている場合、次のようなことができるということですか。

tableSize = nextPrime((numEntries * 3)/2);

上記の割り当てに関する私の考えでは、numEntries は数値 13 を表し、負荷率が 2/3 未満でなければならないことがわかっているので、比率を 2/3 にするために必要な値を見つけます。

4

1 に答える 1

0

ハッシュテーブルを次のように初期化できますnew Hashtable(initialSize, loadFactor)

簡単に言うと、負荷率によって、ハッシュテーブルにより多くのメモリを割り当てるタイミングが決まります。

配列とは異なり、ハッシュテーブルの初期化時にメモリを指定する必要がないことに注意する必要があります。適切なロードファクターは、繰り返されるメモリ割り当てのオーバーヘッドを削減するのに役立ちます。

AFAIKの負荷率が2/3の場合、ハッシュテーブルが2/3でいっぱいになったときにメモリが割り当てられることを示します。

チェックアウト:http ://docs.oracle.com/javase/1.4.2/docs/api/java/util/Hashtable.html

ハッシュテーブルに13個のエントリが格納されることがわかっている場合は、次のコマンドで初期化してみてください。

new Hashtable(13)また、新しい割り当てが必要になったときに明らかになる負荷率について心配する必要はありません。

于 2012-05-01T04:16:07.673 に答える