Comparator, Comparable는 사용자 정의 객체를 사용하거나 특수한 상황 속에서 비교 메서드를 구현할 때 사용하는 인터페이스이다.
Comparator
Comparator 인터페이스를 기반으로 비교 메서드를 정의할 때는 compare 함수를 오버라이드 해야 함
public interface Comparator<T> {
int compare(T o1, T o2);
...
-> 두 인자를 받아 서로 비교함
예시 : 2차원 배열 정렬
Arrays.sort(arr, new Comparator<int[]>() {
@Override
public int compare(int[] arr1, int[] arr2) {
if(arr1[1] == arr2[1]) {
return arr1[0] - arr2[0];
}
return arr1[1] - arr2[1];
}
});
Comparable
Comparable 인터페이스를 사용하기 위해서는 compareTo 함수를 오버라이드 해야 함
public interface Comparable<T> {
public int compareTo(T o);
....
-> 자기자신과 입력받은 인자를 서로 비교함
=> 둘다 양수일 때는 순서가 그대로, 음수일 때는 순서가 바뀌는 방식으로 동작한다.
'알고리즘' 카테고리의 다른 글
| 정수론 : 오일러 피 (2) | 2024.10.27 |
|---|---|
| 소수 구하기 : 에라토스테네스의 체 원리 (0) | 2024.10.20 |
| 그리디(greedy) (0) | 2024.10.01 |
| 이진 탐색(binary search) (1) | 2024.09.19 |
| BFS(넓이 우선 탐색) (0) | 2024.09.03 |