public class HashTable <K, V> implements Table<K, V>{
PairHolder table[];
int idx;
public HashTable(int size){
table=new PairHolder[size];
}
public void put(K key, V value) {
int hVal = key.hashCode();
int index = hashFunc1(hVal);
int temp = hashFunc2(hVal);
int col = index +=temp;
while(table[index]!=null){
index += temp;
index %=table.length;
}
table[index].value=value;
}
}
public int hashFunc1(int key){
int abs = Math.abs(key%table.length);
return abs;
}
public int hashFunc2(int key){
int abs = Math.abs(5-key%5);
return abs;
}
ハッシュを二重にしようとしていますが、その方法について混乱しています。私は正しい軌道に乗っていると思いますが、これNullPointerException
はtable[index].value=value;
.
どんな助けでも素晴らしいでしょう。