public V find(K key){
for (int i = getHashValue(key); table[i] != null; i = (i + 1) % thesize)
if (table[i].key == key)
return table[i].value;
//if the key not found
System.out.println(" Could not find '" + key.toString() +"'s value");
return null;
find方法应该返回键的值,但它没有。我无法理解错误在哪里。我用过(==)但仍然无法正常工作。我很感激你的帮助。
答案 0 :(得分:0)
如果您确定密钥的值已存在于表中,那么您的问题与==
运算符相关,在Java ==
中返回true
对象,如果两个操作数指向同一个对象(不是等效对象,同一个对象。
所以在这种情况下你必须将你的if转换成如下
if (key.equals(table[i].key))
如果您正在使用自定义对象,请务必覆盖关键对象上的equals
方法。