使用可扩展哈希表散列1000个单词

时间:2016-01-26 04:46:38

标签: java

我需要编写一个可扩展的哈希表,从文件中读取1000个单词。它应该从表上的一个键开始,并将一个字哈希到32位掩码。我不知道如何将单词写成32位。桶的大小应为20。 我理解结构和可扩展的内容,但我不知道如何开始

1 个答案:

答案 0 :(得分:0)

提示:Java中的int为32位宽,Object#hashCode()返回一个整数:)

如果您从一个相对较小的存储桶开始,您可能需要考虑使用linear hashing之类的技术,逐渐使用更多的哈希,直到您开始发生冲突。例如,您可以使用String的哈希码的前8位开始。非常粗略:

String[] bucket = new String[20];

String thingToHash = "foo";
int thingHashCode = thingToHash.hashCode();
int bucketIndex = (byte) thingHashCode;

bucket[bucketIndex] = thingToHash;