[14] Comparable 을 구현할지 고려하라
Comparable 을 구현했다 = 해당 클래스에 자연적인 '순서'가 있다
compareTo 일반 규약
public class Main {
public static void main(String[] args) {
BigDecimal n1 = new BigDecimal("1");
BigDecimal n2 = new BigDecimal("2");
BigDecimal n3 = new BigDecimal("3");
// 반사성
System.out.println(n1.compareTo(n1)); // 0
// 대칭성
System.out.println(n1.compareTo(n2)); // -1
System.out.println(n2.compareTo(n1)); // 1
// 추이성
if (n1.compareTo(n2) == -1 && n2.compareTo(n3) == -1) {
System.out.println(n1.compareTo(n3)); // -1
}
}
}정렬된 컬렉션은 동치성 비교시 equals 대신 compareTo 를 사용한다
상속을 한 클래스의 순서 비교를 위해서는 컴포지션을 활용하라
> 또는 < 사용에 주의하자(기본 제공 compare 적극 활용하자)
Last updated