这是一个赋值,用于创建哈希表和与之交互的各种方法,在创建所述哈希表和方法然后运行测试类之后,还给出了一个类来测试它,出现了一个无法解释的问题。其中一个测试是使用实现的方法输入字符串并找到它们。
Integer temp = new Integer(0);
for (int k = 0; k < 200; ++k) { // this function creates 200 unique strings and
s = (new Integer(k)).toString(); // inserts them into the hash table
h.insert("R"+s+"C"+s);
}
boolean fail = false;
for (int k = 0; k < 200; ++k) { // this function tries to find each string that
s = (new Integer(k)).toString(); // was inserted into the hash table
if (!h.find("R"+s+"C"+s) ) {
fail = true;
}
}
查找插入值的函数对每个值都失败,声称它不存在。在此函数之外插入和查找值非常合适,并且在其他类中工作,这使我相信程序不同意该函数的某些内容。
public boolean find(String key) {
String stringKey = key;
int hashToFind;
StringHashCode sH = new StringHashCode(arraySize);
hashToFind = sH.giveCode(stringKey);
if ( HashTable[hashToFind] == stringKey) { // this is where the method checks whether
// or not the place in the hash table matches
// the string we're trying to find
System.out.println(stringKey + " was found in index " + hashToFind);
return true;
} else {
return findDoubleHash(hashToFind, key);
}
}
这是用于查找插入字符串的find方法,除了给定的函数之外,它适用于所有其他情况。它到达if语句并跳过findDoubleHash()方法。 调试显示,值,哈希表中的字符串和要查找的字符串实际上是相同的,应该返回true。然而事实并非如此,并没有找到解决方案的原因。
正如我所说,测试显示此功能是唯一存在问题的实例,任何输入或帮助都会非常感谢为何会出现这种情况。
谢谢