Comparator & Comparable
객체 정렬에 필요한 메서드(정렬기준 제공)를 정의한 인터페이스이다.
💡정렬(sort)
두 대상을 비교 후 자리 바꿈을 반복하는 것
종류 - 오름차순, 내림차순
💡기본 정렬 조건이 오름차순인 이유
Comparable 인터페이스의 compartTo 메서드를 기준으로 하기 때문이다.
Java에서 인스턴스를 서로 비교하는 클래스들은 모두 Comparable 인터페이스가 구현되어 있다.
- Comparable : 기본 정렬기준을 구현하는데 사용
- Comparator : 기본 정렬기준 외에 다른 기준으로 정렬하고자할 때 사용
public interface Comparable{
int compareTo(Object o); //자기 자신과 객체 o를 자신과 비교
}
public interface Comparator{
int compare(Object o1, Object o2); //o1, o2 두 객체를 비교해서 정수로 반환
}
사용 방법
compare()와 compareTo()는 두 객체의 비교결과를 반환하도록 작성한다.
비교결과를 정수로 반환한다.
같으면 | 0 | |
왼쪽이 크면 | 양수 | 오름차순 |
오른쪽이 크면 | 음수 | 내림차순 |
예시)
public final class Integer extends Number implements Comparable{
//Comparable은 comareTo를 구현해야한다.(추상메서드에 몸통 만들어주기)
...
public int compareTo(Integer anotherInteger){
//두 값을 비교
int v1 = this.value;
int v2 = anotherInteger.value;
//오른쪽이 크면 -1, 같으면 0, 오른쪽이 작으면 1
return (v1<v2 ? -1 : (v1==v2 ? 0 : 1)); //3항 연산자 2번 사용한거
}
...
}
'💻공부 > Java ☕️' 카테고리의 다른 글
[Java] - 개선된 for문 (0) | 2023.01.15 |
---|---|
[Java] - 정렬 (0) | 2023.01.14 |
[Java] List와 ArrayList (0) | 2023.01.10 |
EOF (0) | 2022.10.18 |
StringBuilder (0) | 2022.10.15 |
댓글