使用可扩展哈希表对 1000 个单词进行哈希处理



我需要编写一个可扩展的哈希表,从文件中读取1000个单词。它应该从表上的一个键开始,并将一个单词散列为 32 位掩码。我不知道如何将单词变成 32 位。存储桶的大小应为 20。我了解可扩展的结构和发生的情况,但我不知道如何开始

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

如果您从一个相对较小的存储桶开始,您可能需要考虑使用线性哈希等技术,在这种技术中,您可以逐渐使用更多的哈希,直到开始发生冲突。例如,您可以从字符串哈希代码的前 8 位开始。非常粗略:

String[] bucket = new String[20];
String thingToHash = "foo";
int thingHashCode = thingToHash.hashCode();
int bucketIndex = (byte) thingHashCode;
bucket[bucketIndex] = thingToHash;

最新更新