文字列のハッシュコードと配列の長さのモジュラスを使用して、ハッシュテーブルの格納場所のインデックスを取得しようとしています。これが私がそれを台無しにしていると思うところです:
配列宣言とコンストラクター:
private Bucket[] list;
public Hash() {
list = new Bucket[8];
}
そして実際のコード:
//if such a key exists already, you should replace its value
public void insert(String key, Textbook value) {
rehash();
if(list[key.hashCode()%list.length].insert(key, value)) size++;
}
//checks if the key exists
public boolean contains(String key) {
return (list[key.hashCode()%list.length] != null) ? list[key.hashCode()%list.length].contains(key) : false;
}
public void remove(String key) {
if(list[key.hashCode()%list.length].remove(key)) size --;
}
挿入および削除はnullポインターを返し、containsメソッドは常にfalseを返します。
私が間違っていること。ありがとう。