<aside> 💡 순서를 고려해야 하는 값 클래스에는 Comparable 인터페이스를 구현해 정렬/검색/비교 기능을 제공하는 컬렉션과 어우러지게 해야 한다.
compareTo에서 필드 값 비교 시 정적 compare 메서드나 비교자 생성 메서드를 사용할 것
</aside>
public interface Comparable<T> {
public int compareTo(T o);
}
java의 모든 값 클래스와 열거 타입은 Comparable을 구현했으며 순서가 명확한 값 클래스 작성 시 Comparable 인터페이스를 구현하는 것이 좋다.
Arrays.sort(arr);
equals와 비슷하며 규약을 지키지 못하면 비교를 활용하는 클래스와 어울릴 수 없다.
TreeSet
, TreeMap
Collections
, Arrays
이 객체와 주어진 객체를 비교해 이 객체가 주어진 객체보다 작으면 음의 정수, 같으면 0, 크면 양의 정수를 반환한다. 비교할 수 없는 타입의 객체가 주어지면 ClassCastException을 던진다.
<aside> 💡 일반 규약
주의: 이 클래스의 순서는 equals 메서드와 일관되지 않다.
는 사실을 명시해야 한다.</aside>