我有一本字典,我想将字谜存储在同一个桶中。我曾尝试通过查看类似问题来解决我的问题,但我完全被打败了。我使用排序后的字符串作为我的键,但一些不是字谜的词会产生相同的散列。例如,“art”和“slickest”具有相同的哈希值。这是我的代码,TABLE_SIZE 是我的表的大小:
public int myHash(String str) {
int hash = 0;
char[] letters = str.toCharArray();
Arrays.sort(letters);
String convertedString = new String(letters);
System.out.print("The string is: " + convertedString + " ");
hash = convertedString.hashCode() % TABLE_SIZE;
if (hash < 0) {
hash += TABLE_SIZE;
}
return hash;
}
最佳答案
我假设您不能使用 Java 数据集实现?
我认为您将需要使用链式哈希表或其他一些冲突处理结构,因为设计完美的哈希是不切实际的。
看这里。
https://en.wikipedia.org/wiki/Hash_table#Collision_resolution
关于java - 为 Anagrams 制作相同哈希码的错误方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37663786/