2013-03-18 5 views
1

나는 다음과 같은 사용자 정의 클래스가 있습니다사용자 정의 클래스/HashSet의

public class customClass(){ 
    private int keyCode; 
    private boolean up; 
    private String toTrigger; 

    public String getTrigger(); 
    public boolean up(); 
    public int keyCode(); 
} 

무슨 성능이 고유 한 값의 목록을하기위한 가장 좋은 방법은?

나는 HashSet을 생각하고 있었지만 customClass의 유일한 인스턴스를 어떻게 확인할 수 있습니까?

무엇을 재정의해야합니까? 같음 및 HashCode? CustomClass의 해시 세트에 고유 한 인스턴스 만 있는지 확인합니다.

감사

+0

이 당신을 도울 수 있습니다 http://stackoverflow.com/a/27609/1068167 – span

+0

기본적으로, 예 :'equals' 재정과'hashCode'은 충분하지만, 이는 올바르게 무시해야합니다 쉬운 일이 아닙니다. (위의 * span * 링크를 참조하십시오.) – Sentry

+0

Ahh thanks :) 그래서 해시 세트에서 해시 세트는 동등한지를 결정하는 데 사용합니까? 해시 코드 또는 같음? – LmC

답변

2

a.equals (B)도 동일하게 다음이 해시() 해야가 true 인 경우. 사용자 정의 클래스의

  • 오버라이드 모두 .equals()와 .hashCode().

    .equals()에서 평등을 확인하는 데 사용한 hashCode를 계산하는 데 사용자 정의 클래스의 동일한 필드를 사용하십시오.

  • 예, 해시 세트에 customClass의 고유 인스턴스 만 있는지 확인합니다. 그래서 그것을 위해 가라.

+1

** 아니요 **. 2 개의 오브젝트가 equals의 경우, hashCode()는 ** 동일해야한다. – SLaks

+0

@SLaks 나를 고쳐 주셔서 감사합니다. – VishalDevgire

관련 문제