SeouliteLab

[Java/자바] hashCode() 메서드 구현 방법 본문

프로그래밍

[Java/자바] hashCode() 메서드 구현 방법

Seoulite Lab 2024. 3. 9. 00:51

hashCode() 메서드란?

Java에서 모든 객체는 Object 클래스로부터 상속받는 hashCode() 메서드를 가지고 있습니다. 이 메서드는 객체의 해시 코드를 반환합니다. 해시 코드는 객체의 고유한 정수 식별자로 사용됩니다.

hashCode() 메서드의 구현 방법

hashCode() 메서드를 구현하는 방법은 다음과 같습니다:

  • 객체의 중요한 속성들로부터 해시 코드 생성: 객체의 필드를 사용하여 해시 코드를 생성합니다. 중요한 필드가 변경될 때마다 같은 객체에 대해 항상 동일한 해시 코드를 반환해야 합니다.
  • 해시 코드 계산 알고리즘 선택: 각 필드의 해시 코드를 결합하여 최종 해시 코드를 계산합니다. 이때 일반적으로는 각 필드의 해시 코드를 곱하거나 더한 후에 결합합니다.
  • hashCode() 메서드 재정의: Object 클래스의 hashCode() 메서드를 재정의하여 원하는 해시 코드를 반환하도록 구현합니다.

hashCode() 메서드 구현 예제

아래 예제는 hashCode() 메서드를 구현하는 간단한 클래스를 보여줍니다.


public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public int hashCode() {
        int result = name.hashCode();
        result = 31 * result + age;
        return result;
    }

    public static void main(String[] args) {
        Person person = new Person("John", 30);
        System.out.println("HashCode for person: " + person.hashCode());
    }
}