hashcode

    [Effective Java] equals를 재정의하려거든 hashcode도 재정의하라

    [Effective Java] equals를 재정의하려거든 hashcode도 재정의하라

    hashcode 규약 equals 비교에 사용되는 정보가 변경되지 않았다면 hashcode는 항상 같은 값을 리턴해야 한다. 두 객체에 대한 equals가 같다면, hashcode의 값도 같아야 한다. 두 객체의 equals가 다르더라도, 같은 hashcode값을 가질 수 있다. 더 좋은 성능을 위해 다른 값을 리턴하는 것이 더 좋기는 하다. 다음 예제를 통해 왜 hashcode를 같이 정의해야 하는지 이해해보자. phoneNumber에는 equlas규약에 맞춰 메소드가 잘 정의되어있다고 가정하자. public class HashMapTest { public static void main(String[] args) { Map map = new HashMap(); PhoneNumber number1 = n..