使用线性探测的java哈希表
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方法应该返回key的值,但它没有。我不明白哪里出了错。我用过(=),但还是不工作。谢谢你的帮助
# 1 楼答案
如果您确定表中存在键的值,那么您的问题与
==
运算符有关,在Java==
返回true
对象中,如果两个操作数指向同一对象(不是等效对象,而是同一对象)所以在这种情况下,你必须将你的if转换为
如果您使用的是自定义对象,请确保覆盖key对象上的
equals
方法请阅读此how-to-override-equals-method-in-java了解更多信息