Comparator와 Comparable은 인터페이스로 컬렉션을 정렬하는데 필요한 메서드를 정의함.
Comparable을 구현하고 있는 클래스들은 주로 Integer와 같은 wrapper클래스와 String, Date, File과 같은 것들이다.
Comparable은 기본적으로 오름차순 정렬을 구현하는데 사용
Comparator를 구현해서 내림차순 또는 다른 기준으로 정렬되도록 할 수 있다.
static void sort(Object[] a) // 객체 배열에 저장된 객체가 구현한 Comparable에 의한 정렬
static void sort(Objdect[] a, Comparator c) // 지정한 Comparator에 의한 정렬
🟨 Comparator Example
Arrays.sort(str, new Comparator<String>(){
@Override
public int compare(String a, String b){
return (b+a).compareTo(a+b);
}
});
Comparator 구현 예시
Arrays.sort(scores, new Comparator<int[]>(){
@Override
public int compare(int[] o1, int[] o2) {
if(o1[0] < o2[0])
return 1;
else if(o1[0] == o2[0]) {
if(o1[1] > o2[1])
return 1;
else
return -1;
}
else return -1;
}
});
첫번째 인자가 두번째 인자보다 작다면 음수, 같다면 0, 크다면 양수를 리턴
위의 예제는 0열은 내림차순, 1열은 오름차순 정렬
참고 👇
자바의 정석 3판
반응형
'JAVA' 카테고리의 다른 글
StringBuilder (0) | 2021.07.17 |
---|---|
HashSet (0) | 2021.07.14 |
Stack (0) | 2021.07.08 |
String (0) | 2021.07.06 |
wrapper 클래스 (0) | 2021.07.05 |