아이템[11] - equals를 재정의 하려거든 hashCode도 재정의하라
1. equals를 재정의한 클래스는 hashCode도 재정의 해야한다. HashMap이나 HashSet같은 컬렉션의 원소로 사용할 때 문제가 발생한다. 해쉬코드 재정의 조건 equals 비교에 사용되는 정보가 변경되지 않는다면, hashCode는 변하면 안된다. equals가 두 객체가 같다 판단한다면, 두 객체의 hashCode는 똑같은 값을 반환한다. equals가 두 객체가 다르다고 판단해도, hashCode는 꼭 다를 필요는 없다. 하지만 성능을 챙기려면 hashCode값이 달라야 한다. public V get(Object key) { Node e; return (e = getNode(hash(key), key)) == null ? null : e.value; } static final int ..
Reading Record/이펙티브자바
2020. 1. 26.