2012-05-01 149 views
0

如果我有一个散列表,我知道将存储13个项目,我怎么能初始化我的表到适当的大小?我在书中读到负载系数应该等于或低于2/3。这是否意味着,如果我已经知道,在我的表项中的任意点的最大数目将是13,我可以这样做:初始化散列表的大小

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

我与上述转让的想法是,numEntries代表13号而且因为我知道负载系数必须低于2/3,所以我发现我需要使比值为2/3。

回答

0

new Hashtable(initialSize, loadFactor)

简单来说客座率确定何时分配更多的内存以哈希表

你必须意识到,你不需要指定在初始化存储到一个Hashtable不像你可以初始化一个Hashtable阵列。适当的loadfactor有助于减少重复内存分配的开销。

AFAIK加载因子为2/3表示散列表在内存为2/3rds时已分配给内存。

退房:http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Hashtable.html

如果您知道哈希表会被存储13项为何不

new Hashtable(13)初始化它,而不是担心loadfactor需要新的分配时进入图片。