OCJP (1Z0-851 / 2012-08-28 / Exam A) - 40 번
관련 이론 및 문법
(Object 클래스 참고)
http://kkikkodev.tistory.com/126
문제 의도
hashCode 메소드에 대한 설명 중 참인 것을 2 개 고르는 문제입니다.
답안
C, E
풀이 방법
보기 A 를 보면, hashCode 메소드는 객체의 일치성과 불일치성을 모두 확인할 수 있다는 말입니다. 하지만, hashCode 는 객체의 불일치성만 확인할 수 있기 때문에 답안 후보에서 제외합니다.
보기 B 를 보면, hashCode 메소드는 SortedSet collection 에서 자료들을 정렬하는데 사용된다고 했는데, SortedSet 은 hashCode 값으로 정렬하지 않고, 외부로부터 정렬기준을 받아서 (Comparable 혹은 Comparator 사용) 그 기준대로 정렬을 수행하기 때문에 답안 후보에서 제외합니다.
보기 C 는, hashCode 메소드는 객체의 불일치성은 확인할 수 있지만, 일치성은 확인할 수 없다는 이야기 이므로, 답안이 됩니다.
보기 D 는, hashCode 메소드로부터 반환되는 값의 중요한 특성은 정규분포를 무조건 따른다는 이야기인데, hashCode 를 overriding 할때 정규분포를 따르게 할 수도 있고, 안 따르게 할 수도 있기 때문에 이는 답안 후보에서 제외합니다.
보기 E 는, hashCode 는 HashSet collection 에서 자료들의 빠른 반환을 위해서 해시 버킷을 사용하는데 이 해시 버킷을 만들기 위해 자료들을 그룹화하는데 사용된다는 이야기 인데, HashSet collection 은 hashCode 로 묶기 때문에 (데이터를 추가할 때 혹은 찾을 때 1 차적으로 hashCode 기준으로 묶어서 확인하기 때문), 이는 참이므로, 답안이 됩니다.
따라서, 답안은 C 와 E 가 됩니다.