TreeMapインターフェースを使用するJavaプログラムを作成していますが、containsKeyに問題があります。確かに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;
}
}