我在这里遇到了一个无限循环。我需要帮助找到一个边缘案例,我可能没有考虑过。
table
是(键,值)对的数组。 isRemoved()
标记表的元素(如果已删除)。
index
源自'键的散列函数' ...这里我试图将一个元素添加到哈希表中。
int removed = -1;
while (table[index] != null) {
if (table[index].isRemoved()) {
if (removed != -1) {
removed = index;
}
} else {
if (key.equals(table[index].getKey())) {
dData = table[index].getValue();
table[index].setValue(value);
return dData;
} else {
index++;
index %= startingSize;
}
}
}
if (removed != -1) {
index = removed;
}
答案 0 :(得分:0)
在第一个if
if (table[index].isRemoved()) {
if (removed != -1) {
removed = index;
}
}
索引没有递增,也没有其他代码被访问
答案 1 :(得分:0)