java
Copy code
public class Person implements Comparable {
private int age;
@Override
public int compareTo(Person other) {
return this.age - other.age; // 나이를 기준으로 오름차순 정렬
}
}
2. Comparator
Comparator는 객체 외부에서 정렬 메커니즘을 정의하고 싶을 때 사용합니다.
동일한 객체를 다양한 기준으로 정렬하고 싶을 때 유용합니다.
compare 메서드를 오버라이드하여 구현합니다.
예시:
java
Copy code
public class AgeComparator implements Comparator {
@Override
public int compare(Person p1, Person p2) {
return p1.getAge() - p2.getAge(); // 나이를 기준으로 오름차순 정렬
}
}
주요 차이점:
위치: Comparable은 정렬하려는 객체의 내부에 정의되며, Comparator는 외부에서 정의됩니다.
메서드: Comparable은 compareTo 메서드를 사용하고, Comparator는 compare 메서드를 사용합니다.
용도: Comparable은 객체의 자연적인 순서를 정의하는 데 사용되며, Comparator는 특정 조건에 따라 객체를 정렬하는 데 사용됩니다.
트리맵을 내림차순으로 사용하고 싶을경우 Comparator 를 사용한다
TreeMap tmap = new TreeMap<>(Comparator.reverseOrder());