생활
Java의 HashSet을 공부하던 중 hashCode에 대해 의문점이 있습니다.
HashSet - hashcode()의 오버라이딩 조건
1) 동일 객체에 대해 hashCode()를 여러 번 호출해도 같은 값을 반환해야 한다.
2) equals()로 비교해서 true를 얻은 두 객체의 hashCode()값은 일치해야 한다.
* false일 때도 두 객체의 hashCode()의 값이 같을 수도 있다.
원래 객체의 값에 의해 나온 hashCode의 값이 일치해야 하는 점은 이해합니다만,
equals로 비교했을 때 false가 나온 경우에도 hashCode()의 값이 같을 수도 있다고 써있더라구요.
그 이유가 무엇인가요? 그리고 그렇게 됐을 때, hashCode를 이용해서 비교할 수는 없지 않나요?
2개의 답변이 있어요!