我目前正在开发一个管理哈希表并允许添加新值的 Java 程序,它旨在填充表中的空元素并随着表的增长而动态扩展,每次都上升到下一个续集素数。我目前遇到的问题表面上看起来像是一个简单的变量调用错误,但我终其一生都无法理解并解决它。程序本身需要通过使用 JUnit 的 testHT 中规定的 6 项测试。任何对 Java 和 Hashtables 都有经验的人,我希望您能在解决这个问题时提供见解。
BlueJ 给出了一个 'symbol not found' 错误的关键 veribale
您可以在下面找到错误所在类的摘录,我会将其上传到 Google Drive 并在下面附上一个可共享的链接。
代码片段:
public void put(String key, V value) {
int h = hash(key) % max;
if (getLoadFactor() > maxLoad) {
resize();
}
int place = 0;
if (hasKey(key) == true) {
boolean running = true;
while (running) {
if (arr[place].key.equals(key)) {
Object newObject = new Object(key, value);
arr[place] = newObject;
}
place++;
}
}
else {
if (arr[h] == null) {
Object newObject = new Object(key, value);
arr[h] = newObject;
itemCount++;
}
else {
int pos = findEmpty(h, 0, key, arr, max);
Object newObject = new Object(key, value);
arr[pos] = newObject;
itemCount++;
}
}
}