【发布时间】:2015-10-30 06:02:26
【问题描述】:
刚开始在我的一堂课上学习哈希表。我的理解是,它们的工作方式是表中元素的索引应该用哈希函数来确定。我正在尝试为大量字符串创建一个哈希表,我们的讲师鼓励我们使用 Java 的字符串方法hashCode()。假设我想将所有这些字符串放在一个数组中,words[]。
这是我不明白的。我该怎么处理这个号码?生成的哈希似乎很大。 “堆栈”的哈希码是 109757064,“溢出”的哈希码是 529642498。相差超过 4 亿,这将是一个非常荒谬的大表,更不用说有多少索引没有分配给他们的字符串.所以我可以有words[109757064] = "stack" 和words[529642498] = "overflow",但这显然很荒谬。
我在这里缺少什么?在获取哈希码和在我的数组中为其分配索引之间是否有一个步骤?
【问题讨论】: