728x90 해시1 Item 11. equals를 재정의하려거든 hashCode도 재정의하라 equals를 재정의한 클래스 모두에서 hashCode도 재정의해야 한다. 그렇지 않으면 클래스 인스턴스를 HashMap 같은 컬랙션의 원소로 사용할 때 문제가 발생한다. 자바 레퍼런스의 Object에 있는 hashCode의 명세를 보면 다음과 같이 hashCode를 설명한다. 1. equals 비교에 상요되는 정보가 변경되지 않았다면, 애플리케이션이 실행되는 동한 그 객체의 hashCode 메서드는 호출 횟수와 무관하게 같은 값을 반환해야 한다. 단, 애플리케이션을 재실행 한다면 값이 달라져도 상관없다. 2. equals(Object)가 두 객체를 같다고 판단하면, 두 객체의 hashCode는 똑같은 값을 반환해야 한다 (논리적으로 같은 객체는 같은 해시코드를 반환해야 한다). 3. equals(Obj.. 2022. 3. 3. 이전 1 다음 728x90