문자열 해시 코드
컴퓨터는 문자를 직접 이해하지 못하는 대신 각 문자에 고유한 숫자를 할당해서 인식 (ASCII 코드)
hashCode() 메서드를 사용해서 문자열을 해시 코드로 변경
>> 고유한 정수 숫자 값 (해시 코드)를 사용해서 해시 인덱스를 생성하고 이걸 배열의 인덱스로 사용
자바의 hashCode()
해시 자료 구조를 사용하려면 정수로 된 숫자 값인 해시 코드가 필요
자바에는 정사 뿐만 아니라 char, String, Double, Boolean등 수 많은 타입 존재, 또한 개발자가 직접 정의한 Member, User와 같은 사용자 정의 타입도 존재
>> 모든 객체가 숫자 해시 코드를 제공할 수 있어야 함
Object.hashCode()
자바는 모든 객체가 자신만의 해시 코드를 표현할 수 있는 기능 제공
보통 오버라이딩해서 사용
기본 구현은 객체의 참조값을 기반으로 해시 코드 생성
>> 객체의 인스턴스가 다르면 해시 코드도 다름
equals, hashCode의 중요성
해시 자료 구조를 사용하려면 hashCode()도 중요하지만
해시 인덱스가 충돌할 경우를 대비해 equals()도 반드시 재정의
>> 데이터 중복 저장 문제
'Java' 카테고리의 다른 글
Java / 컬렉션 프레임워크 - Map, Stack, Queue (0) | 2025.03.09 |
---|---|
Java / 컬렉션 프레임워크 - Set (0) | 2025.03.08 |
Java / 컬렉션 프레임워크 - Hash (0) | 2025.03.08 |
Java / 컬렉션 프레임워크 - List (0) | 2025.03.07 |
Java / 컬렉션 프레임워크 - LinkedList (0) | 2025.03.04 |