[Java] 동일한 hashcode를 가지면 equals()가 참일까?

지인·2023년 6월 21일
0

Java

목록 보기
4/7

🐰 hashCode()와 equals()

  • Java에서 객체의 동등성을 판단하는 두 가지 메서드

hashCode()

객체의 해시코드 값을 반환하는 메서드
객체를 식별하기 위한 정수 값
해시 테이블과 같은 자료구조에서 객체를 저장하거나 검색할 때 사용된다.

  • 동일한 객체에 대해 여러 번 hashCode()를 호출하면 항상 동일한 값을 반환해야 한다.

equals()

객체의 내용적 동등성을 판단한다.
두 객체의 값이 동일한지를 비교하여 true 또는 false를 반환한다.


🐰 동일한 hashcode를 가지면 equals()가 참일까?

  • Answer : 아니요

    • 만약 두 객체가 equals()를 통해 같다면, 두 객체의 hashCode() 값은 반드시 동일해야 한다.

    • 하지만, 두 객체의 hashCode()가 같다고 해서 equals()가 참이 되는 것은 아니다.

  • equals() 메서드는 객체의 내용을 비교하므로, 동일한 hashCode() 값이라도 객체의 내용이 다르다면 equals()는 false를 반활할 수 있다.


참고

profile
열쩡

0개의 댓글