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 |