ファイルからいくつかの単語とその意味を読み取り、それらを配列にマップする (ハッシュ テーブルを作成する) コードを書きました。多項式ハッシュ コードと圧縮方法を使用します。
私の目標は、衝突をできるだけ少なくすることですが、方法がわかりません。
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;
}
圧縮方法を変更する必要がありますか、それとも役立つ方法がありますか?