<aside> 💡 순서를 고려해야 하는 값 클래스에는 Comparable 인터페이스를 구현해 정렬/검색/비교 기능을 제공하는 컬렉션과 어우러지게 해야 한다.

compareTo에서 필드 값 비교 시 정적 compare 메서드나 비교자 생성 메서드를 사용할 것

</aside>

Comparable의 compareTo

public interface Comparable<T> {    
    public int compareTo(T o);
}

java의 모든 값 클래스와 열거 타입은 Comparable을 구현했으며 순서가 명확한 값 클래스 작성 시 Comparable 인터페이스를 구현하는 것이 좋다.

Object의 equals와 다른 점

Arrays.sort(arr);

일반 규약

equals와 비슷하며 규약을 지키지 못하면 비교를 활용하는 클래스와 어울릴 수 없다.

이 객체와 주어진 객체를 비교해 이 객체가 주어진 객체보다 작으면 음의 정수, 같으면 0, 크면 양의 정수를 반환한다. 비교할 수 없는 타입의 객체가 주어지면 ClassCastException을 던진다.

<aside> 💡 일반 규약

</aside>