我正在尝试使用字符串的哈希码和数组长度的模数来获取应该为哈希表存储它的位置的索引。这是我认为我搞砸的地方:
数组声明和构造函数:
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 --;
}
insert 和 remove 返回空指针,而 contains 方法返回总是返回 false。
我做错了什么。谢谢。