2012-05-01 13 views
0

私が知っているハッシュテーブルに13個のアイテムが保存されている場合、テーブルを適切なサイズに初期化するにはどうすればよいですか?私は私の本で負荷率が2/3以下であるべきであることを読んだ。これは、私はすでに任意の時点で私のテーブル内の項目の最大数は13になることを知っていれば、私のような何かができることを意味しています:ハッシュテーブルのサイズを初期化する

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

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

答えて

0

あなたは、負荷率がハッシュテーブル

に多くのメモリを割り当てるときあなたはとは異なり、ハッシュテーブルに初期化時にメモリを指定する必要はありませんことを認識する必要があります決定し簡単に言えばnew Hashtable(initialSize, loadFactor)

としてハッシュテーブルを初期化することができますアレイ。適切な負荷係数は、繰り返しメモリ割り当てのオーバーヘッドを削減するのに役立ちます。

AFAIK負荷係数2/3は、ハッシュテーブルが2/3がいっぱいになるとメモリに割り当てられることを示します。

チェックアウト:http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Hashtable.htmlあなたはハッシュテーブルが理由ではない

new Hashtable(13)でそれを初期化し、新しい割り当てが必要な場合に、画像に入ってくるloadfactor心配しない13個のエントリを格納されることがわかっている場合

関連する問題