如果我有一个散列表,我知道将存储13个项目,我怎么能初始化我的表到适当的大小?我在书中读到负载系数应该等于或低于2/3。这是否意味着,如果我已经知道,在我的表项中的任意点的最大数目将是13,我可以这样做:初始化散列表的大小
tableSize = nextPrime((numEntries * 3)/2);
我与上述转让的想法是,numEntries代表13号而且因为我知道负载系数必须低于2/3,所以我发现我需要使比值为2/3。
如果我有一个散列表,我知道将存储13个项目,我怎么能初始化我的表到适当的大小?我在书中读到负载系数应该等于或低于2/3。这是否意味着,如果我已经知道,在我的表项中的任意点的最大数目将是13,我可以这样做:初始化散列表的大小
tableSize = nextPrime((numEntries * 3)/2);
我与上述转让的想法是,numEntries代表13号而且因为我知道负载系数必须低于2/3,所以我发现我需要使比值为2/3。
为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需要新的分配时进入图片。