Comparable 인터페이스의 유일한 메서드
- compareTo : 두 가지 성격을 빼면 Object의 equals와 같음
- 단순동치성 비교(equals)에 순서까지 비교 가능
- 제네릭
→ Comparable을 구현했다는 것 : 클래스의 인스턴스에 자연적인 순서가 있음을 뜻함
- Comparable을 구현한 객체들의 배열은 다음과 같이 정렬가능
Arrays.sort(a);
장점
- 제네릭 알고리즘과 컬렉션의 힘을 누릴 수 있다
- 좁쌀만 한 노력으로 코끼리만 한 큰 효과!
- 자바 플랫폼 라이브러리의 모든 값 클래스와 열거 타입이 Comparable을 구현했음
- 알파벳, 숫자, 연대 같이 순서가 명확한 값 클래스를 작성한다면 반드시 Comparable 인터페이스를 구현하자.
인터페이스 구현
public interface Comparable<T> {
int compareTo(T t);
}
compareTo 메서드의 일반 규약
- 두 객체 참조의 순서를 바꿔 비교해도 예상한 결과가 나와야 함
- a > b라면, b < a 도 같은 결과
- 첫번째 > 두번째 / 두번째 > 세번째 라면, 첫번째 > 세번째
- equals 규약과 비슷하다.
- 모든 객체에 대해 전역 동치관계를 부여하는 equals 메서드와 달리, compareTo는 타입이 다른 객체를 신경 쓰지 않아도 된다.
'공부 > 이펙티브자바' 카테고리의 다른 글
[이펙티브 자바 3판] 아이템 28. 배열보다는 리스트를 사용하라 (0) | 2022.10.31 |
---|---|
54. null이 아닌, 빈 컬렉션이나 배열을 반환하자 (0) | 2022.04.01 |
12. toString을 항상 재정의하라 (0) | 2022.03.18 |
5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하기 (0) | 2022.03.18 |
64. 객체는 인터페이스를 사용해 참조하라 (0) | 2022.03.17 |
댓글