-
아이템 14. Comparable을 구현할지 고민하라Java/이펙티브 자바 2023. 6. 23. 08:36
핵심정리1 - Comparable 규약
핵심 정리: compareTo 규약
- Object.equals에 더해서 순서까지 비교할 수 있으며 Generic을 지원한다.
- 자기 자신이 (this)이 compareTo에 전달된 객체보다 작으면 음수, 같으면 0, 크다면 양수를 리턴한다.
- 반사성, 대칭성, 추이성을 만족해야 한다.
- 반드시 따라야 하는 것은 아니지만 x.compareTo(y) == 0 이라면 x.equals(y)가 true 여야 한다.
핵심정리1 - Comparable 구현 방법1
- 자연적인 순서를 제공할 클래스에 implements Comparable<T> 을 선언한다.
- compareTo 메서드를 재정의한다.
- compareTo 메서드 안에서 기본 타입은 박싱된 기본 타입의 compare을 사용해 비교한다.
-핵심 필드가 여러 개라면 비교 순서가 중요하다. 순서를 결정하는데 있어서 가장 중요한 필드를 비교하고 그 값이 0이라면 다음 필드를 비교한다.
- 기존 클래스를 확장하고 필드를 추가하는 경우 compareTo
ㆍComposition을 활용할 것
핵심정리1 - Comparable 구현 방법2
완벽공략
'Java > 이펙티브 자바' 카테고리의 다른 글
아이템16. public 클래스에서는 public 필드가 아닌 접근 메서드를 사용하라. (0) 2023.08.13 아이템15. 클래스와 멤버의 접근 권한을 최소화하라 (0) 2023.06.27 아이템13. clone 재정의는 주의해서 진행하라 (0) 2023.06.18 아이템 12. toString을 항상 재정의하라 (0) 2023.06.18 아이템11. equals를 재정의하려거든 hashCode도 재정의하라 (0) 2023.06.17