본문 바로가기
알고리즘

Comparator와 Comparable

by hxxyeoniii 2024. 10. 14.

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