[JAVA] Comparator

Boknami·2023년 9월 24일
0

Java

목록 보기
3/5

🤷‍♂️ 계기

여러 알고리즘 문제를 해결하기 위해서는 정렬은 필수적이다. 1차원 배열에서는 Arrays.sort나 Collection.sort를 이용해서 정렬을 바로 하면 되지만 2차원 배열이라던가 아니면 오름차순이 아닌 내림차순을 정렬한다던가 하는 경우에 항상 서칭을 하면서 알아보면 자연스레 익혀질거라 생각했는데 생각보다 안 익어서 이번 기회에 정리하고 확실히 익히자!


📋 개념

일단 Comparator는 인터페이스다!
인터페이스는 기반 틀을 만들어놓고 그것들을 기반으로 편리하게 상속받아 사용할 수 있다. 주의할 점은 인터페이스이기 때문에 반드시 인터페이스 내에 선언된 함수를 구현해야한다!(=Override)

추가적 내용

  • JAVA8 이 후 인터페이스에서도 함수 자체 구현이 가능하도록 변경!(원래는 이런 함수들의 이름을 적어놨어 정도였다!
    - 대부분이 default | static
    - 애네는 재정의안해도 괜찮다!
    - default = 재정의 가능
    - static = 재정의 불가능

Compartor VS Comparable

Comparotor

  • 매개변수 2개
  • 들어오는 두 매개변수 객체를 비교
  • import해야한다!

Comparable

  • 매개변수 1개
  • 자기 자신과 들어오는 파라미터 매개변수를 비교
  • lagn패키지 내에 있어서 기본적으로 사용이 가능!

🔍 사용

Arrays.sort(times, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1,int[] o2){
                return o1[1]-o2[1];
            }
});

Comparator는 인터페이스고 반드시 Override를 통해서 함수 재정의가 필요하다! 이를 익명 객체로 생성하여서 구현한다! 아래와 같은 익명함수!!

Arrays.sort(times, new Comparator<int[]>() { ... }

<> -> 비교할 타입(꺼내와서 비교할)
{} -> 오버라이딩할 함수부 구현

0개의 댓글

관련 채용 정보