0
我正在編寫一個使用TreeMap接口的Java程序,並且我對containsKey有問題。即使當我給出containsKey時,它也會返回true,但我知道肯定不在TreeMap中。Java TreeMap containsKey總是返回true?
這可能是什麼原因造成的?
非常感謝。
-
編輯:我寫計數的單詞出現在文本文件中的程序。單詞被解析,每個單詞都是一個類的新實例。在這些類中,equals和hashCode方法被覆蓋,因爲即使它們是不同的對象,也需要將它們視爲等號。
字段「text」包含單詞文本的字符串。
public boolean equals(Object obj){
Word temp = ((Word)obj);
return this.text.equals(temp.text);
}
public int hashCode(){
return this.text.hashCode();
}
public int compareTo (Object x) {
Word temp = ((Word)x);
if(this.text.compareTo(temp.text) < 0){
return -1;
}
else if (this.text.equals(temp.text)){
return 0;
}
else {
return 1;
}
}
你可以發佈一些示例代碼? – 2009-12-01 20:35:36
和你的compareTo實現? – 2009-12-01 20:46:35
嗯......好吧,那*看起來很好(雖然只是返回this.text.compareTo(temp.text))會更簡單) - 你有一個簡短但完整的程序來證明它失敗嗎? – 2009-12-01 21:25:14