Adventure Time - Lady Rainicorn [Java] - Comparator & Comparable
본문 바로가기
💻공부/Java ☕️

[Java] - Comparator & Comparable

by 강켄트 2023. 1. 14.

Comparator & Comparable 

객체 정렬에 필요한 메서드(정렬기준 제공)를 정의한 인터페이스이다.

 

 

💡정렬(sort)

두 대상을 비교 후 자리 바꿈을 반복하는 것 

종류 - 오름차순, 내림차순

 

 

💡기본 정렬 조건이 오름차순인 이유 

Comparable 인터페이스의 compartTo 메서드를 기준으로 하기 때문이다.

Java에서 인스턴스를 서로 비교하는 클래스들은 모두 Comparable 인터페이스가 구현되어 있다.

 

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

 

public interface Comparable{
     int compareTo(Object o); //자기 자신과 객체 o를 자신과 비교 
}

public interface Comparator{
     int compare(Object o1, Object o2); //o1, o2 두 객체를 비교해서 정수로 반환 
}

 

사용 방법 

compare()와 compareTo()는 두 객체의 비교결과를 반환하도록 작성한다.

비교결과를 정수로 반환한다. 

같으면 0  
왼쪽이 크면 양수 오름차순
오른쪽이 크면 음수 내림차순

 

예시)

public final class Integer extends Number implements Comparable{
//Comparable은 comareTo를 구현해야한다.(추상메서드에 몸통 만들어주기)
     ...
     public int compareTo(Integer anotherInteger){
          //두 값을 비교  
          int v1 = this.value;
          int v2 = anotherInteger.value;
          //오른쪽이 크면 -1, 같으면 0, 오른쪽이 작으면 1
          return (v1<v2 ? -1 : (v1==v2 ? 0 : 1)); //3항 연산자 2번 사용한거    
     }
     ...
}

 

 

'💻공부 > Java ☕️' 카테고리의 다른 글

[Java] - 개선된 for문  (0) 2023.01.15
[Java] - 정렬  (0) 2023.01.14
[Java] List와 ArrayList  (0) 2023.01.10
EOF  (0) 2022.10.18
StringBuilder  (0) 2022.10.15

댓글