[Java] 5.6.2 hashCode 메서드 (Object 클래스)

출간일 2016년 11월 28일

판매가 2000원

형태 ebook

학습에 도움이 되시면 ebook을 구입하여 소장하시면 감사하겠습니다.

언제나 휴일 출판사의 수익금의 대부분은 아프리카에 기부하고 있습니다.


Object 클래스의 hashCode 메서드에서는 Java 플랫폼에서 특정 개체를 빠르게 검색할 수 있게 해쉬 테이블에 저장하는 것과 연관이 있습니다. hashCode는 해당 개체를 해쉬 테이블에 저장하였을 때 빨리 찾기 위한 해쉬 코드값을 반환하는 것입니다. 실제 프로그램 실행에서 서로 다른 개체가 같은 해쉬 코드값을 갖을 확률은 지극히 낮기 때문에 개체를 판별하는데 사용하는 이도 있지만 이는 완벽한 신뢰성을 보장한다고 볼 수는 없습니다. 확률적으로 같은 값을 반환하는 것이 낮은 것일 뿐 절대적인 것은 아니기 때문입니다.

 

물론 개발자는 이 hashCode 메서드를 재정의할 수 있습니다. 다음 예제에서는 정적 멤버로 seq를 선언하고 개체를 생성할 때마다 1씩 증가한 후에 개체의 멤버 hv 에 대입하였습니다. 그리고 hashCode 메서드를 재정의하여 유일한 값으로 사용할 수 있게 하였습니다.

 

그렇지만 이러한 방법을 추전하는 것은 아니며 이렇게 할 수도 있다는 것을 보여주는 것일 뿐입니다.

 

다음 코드는 hashCode 메서드 재정의 예제입니다.

실행 결과