我编写了从文件中读取一些单词及其含义并将它们映射到数组(制作哈希表)的代码。它使用多项式哈希码和压缩方法。
我的目标是尽可能减少碰撞,但我不知道如何。
public int hashcode(Entry my){
Object key=my.getKey();
int sum=0 ,z=33;
char[] chars = new char[key.toString().length()];
chars=key.toString().toCharArray();
for(int i=0; i < chars.length; i++){
sum += (chars[i])*Math.pow(z,i);
}
return sum;
}
这是我的压缩方法(对于大小为 100 的数组):
public int compress(int hashcode){
return hashcode%100;
}
我应该改变我的压缩方法还是有一些方法可以帮助我?