初始化哈希表的大小

时间:2012-05-01 04:02:47

标签: initialization size hashtable load-factor

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

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

我对上述任务的思考是numEntries代表数字13,因为我知道负载系数必须低于2/3,我找到了比率为2/3所需的值。

1 个答案:

答案 0 :(得分:0)

您可以将哈希表初始化为new Hashtable(initialSize, loadFactor)

简单来说,负载因子决定了何时为哈希表分配更多内存

您必须意识到,与初始化不同,您无需在初始化时将内存指定为散列表。适当的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