TreeMap 인터페이스를 사용하는 Java 프로그램을 작성 중이며 containsKey에 문제가 있습니다. containsKey를 지정해도 true를 반환합니다. 확실히 알고있는 TreeMap에없는 것이 있습니다.Java TreeMap containsKey는 반드시 true를 리턴합니까?
무엇이 원인 일 수 있습니까?
미리 감사드립니다.
-
편집 : 텍스트 파일에서 단어의 발생 수를 계산하는 프로그램을 쓰고 있어요. 단어는 구문 분석되며 각 단어는 클래스의 새 인스턴스입니다. 이 클래스에서는, equals와 hashCode 메소드가 오버라이드 (override)됩니다. 다른 객체 인 경우에서도, 그 단어를 등가로서 취급 할 필요가 있기 (위해) 때문에입니다.
"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;
}
}
몇 가지 예제 코드를 게시 할 수 있습니까? –
그리고 compareTo 구현은 무엇입니까? –
흠 ... 글쎄, 괜찮아 보인다. (단지'this.text.compareTo (temp.text) '를 반환하는 것이 더 간단 할지라도) - 실패했다는 것을 증명하는 짧지 만 완전한 프로그램이 있는가? –