정렬인터페이스

LJM·2023년 8월 15일
0

알고리즘이론

목록 보기
23/29
  1. Comparable
    Comparable은 객체 자체에 정렬 메커니즘이 포함되어 있어야 할 때 사용합니다.
    클래스가 Comparable 인터페이스를 구현하면, 그 클래스의 인스턴스들은 자연적인 순서로 정렬될 수 있습니다.
    compareTo 메서드를 오버라이드하여 구현합니다.
    예시:

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());

profile
게임개발자 백엔드개발자

0개의 댓글