[Java] Comparable , Comparator

hi·2022년 1월 30일
0
  • 정렬을 구현할 수 있게 하는 인터페이스
  • 정렬 기준 값이 있는 클래스에 구현
Class 클래스명 implements Comparable < > {}
Class 클래스명 implements Comparator nu8jmik9< > {}

Comparable 인터페이스

  • 자기 자신과 매개변수를 비교

  • compareTo() 추상메서드 포함
    👉 인터페이스를 구현하는 클래스에서 메서드 구현

    새로 추가되는 값 - 기존 비교값 :
    0보다 작음 : -1 리턴 (내림차순)
    0과 같음 : 0 리턴
    0보다 큼 : 1리턴 (오름차순)

Comparator 인터페이스

  • 두 매개변수를 비교

  • compare() 추상메서드 포함
    첫 번째 매개변수가 더 크면 양수 반환 (오름차순 정렬)

    🔎 TreeSet 생성자에 Comparator를 구현한 객체를 매개변수로 전달

TreeSet<Member> treeSet = new TreeSet<Member>(new Member());
  • Comparable 인터페이스를 더 많이 사용

  • 다른 클래스가 이미 Comparable을 구현한 경우,
    이 클래스의 정렬 방식을 정의할 때 Comparator 사용

    Comparable : 기본 정렬 기준을 구현하는데 사용
    Comparator : 기본 정렬 기준 외에 다른 기준으로 정렬

0개의 댓글