0
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;
}

ハッシュを二重にしようとしていますが、その方法について混乱しています。私は正しい軌道に乗っていると思いますが、これNullPointerExceptiontable[index].value=value;.

どんな助けでも素晴らしいでしょう。

4

1 に答える 1