Java/공부

0. hashCode()

pakms980319 2024. 3. 13. 10:51

hashCode()

  • hashCode()는 객체의 hashCode를 반환한다
  • hashCode는 일반적으로 각 객체의 주소값을 변환하여 생성한 객체의 고유한 정수값이다
  • 두 객체가 동일 객체인지 비교할 때 사용할 수 있다

1. 객체의 hashCode()

 

hashCode()를 바로 호출하면 아래의 결과가 나온다

실행 결과

 

10진수 형태로 출력된 결과이다

 

16진수 형태로 출력을 하려면 아래처럼 작성한다

 

printf 메서드에서 %x 포맷을 사용한다

 

위 실행결과를 보면 toString의 마지막 문자열과 hashCode()의 문자열이 같은것을 확인할 수 있다

 

toString 또한 hashCode를 사용하기 때문이다

 

위 사용예시들로 확인할 수 있듯이, hashCode는 생성한 객체의 고유한 정수값을 반환해주며 이를 이용하여 각 객체의 동일 비교를 해줄 수 있다.


2. 사용자 정의 객체에서 hashCode() 재정의 하기

 

Overriding 하여 hashCode() 메서드를 재정의 하였다

 

Objects 의 hash 메서드는 아래의 역할을 한다

 

hashCode() 메서드를 사용하여 다른 고유한 정수값을 반환해주고 있다


3. System.identityHashCode()

 

System의 identityHashCode() 또한 hashCode() 메서드를 통해 고유한 정수값을 반환하여 각 객체의 동일 비교를 할 수 있게 도와준다


4. equals() 메서드 재정의

 

  • hashCode() 반환값을 통한 동일 비교 연산을 하던 equals() 메서드를 재정의하였다
  • 필드에 id 속성을 추가하여 그 값이 같다면 true를 리턴하도록 설계하였다

출처

 

https://brunch.co.kr/@mystoryg/133

 

자바 hashCode()

자바의 hashCode() hashCode()는 객체의 hashCode를 리턴한다. hashCode는 일반적으로 각 객체의 주소값을 변환하여 생성한 객체의 고유한 정수값이다. 따라서 두 객체가 동일 객체인지 비교할 때 사용할

brunch.co.kr

 

'Java > 공부' 카테고리의 다른 글

0. Wrapper 클래스  (0) 2024.03.13
0. Class.class  (0) 2024.03.13
0. Abstract  (0) 2024.03.11
0. UpDownCasting / instanceof  (0) 2024.03.11
11. 참조형 (Reference type)  (1) 2024.03.05