아티팩트라는 개체의 TreeSet이 있습니다. 그래서 같은 객체의 등호 및 해시 코드 메소드를 오버라이드 (override) 한 : 나는 equals 메소드에 지문을 넣어하고이 호출되지고유 한 값을 저장하지 않는 Java TreeSet
@Override
public int hashCode() {
return new HashCodeBuilder(17, 31). // two randomly chosen prime numbers
// if deriving: appendSuper(super.hashCode()).
append(artifactId).
toHashCode();
}
@Override
public boolean equals(Object arg0) {
Artifact obj=(Artifact)arg0;
if(this.getArtifactId().equalsIgnoreCase(obj.getArtifactId()))
{
return true;
}
return false;
}
. 나는 TreeSet의 그것 등호 오버라이드 (override)에 따라 고유성의 설정 읽었습니다
TreeSet<Artifact> syncedList = new TreeSet<Artifact>(new ArtifactComparator());
: 나는처럼 보이는 비교기로 TreeSet의 인스턴스를 생성했다.
내가 필요로하는 것과 같이 고유하지 않은 TreeSet의 ArtifactId가 동일한 여러 개체가 표시됩니다.
내 같음 및 해시 코드 메소드에 누락 된 것이 있습니까? 당신이 entrySet()
또는 keySet()
를 가져 오는 경우를 제외하고