- Array.Sort() 는 Comparable 구현에 의해 정렬을 수행함

- Comparator, Comparable은 인터페이스

- Comparable를 구현하고 있는 클래스들은 서로 같은 타입의 인스턴스끼리 서로 비교할 수 있는 (wrapper클래스, String, Date, File)과 같은 것들을 기본적으로 오름차순으로 정렬하도록 구현됨

-> Comparable을 구현한 클래스는 정렬이 가능

Comparable

public interface Comparable {
	public int compareTo(Object o);
}

- compareTo()는 비교하는 두 객체가 같으면 0, 작으면 음수, 크면 양수를 반환

- 기본 정렬기준을 구현하는데 사용

Comparator

public interface Comparator {
	int compare(Object o1, Object o2);
    boolean equal(Object obj);
}

- 두 객체 o1, o2를 비교함

- compare()메서드는 두 객체를 비교해서 음수, 0, 양수 중의 하나를 반환하도록 구현해야 함

- 개발자가 임의로 정렬 기준을 만들기 위해서 Comparator의 compare()메서드를 오버라이딩하여 구현하면 됨

(기본 정렬기준 외에 다른 기준으로 정렬하고자 할 때 사용)

- 관련 문제 링크

 

 

 

 

'JAVA > java' 카테고리의 다른 글

Enum (Enumeration, 열거형)  (0) 2021.03.04
형변환  (0) 2021.02.28
mutable과 immutable  (0) 2021.02.25
Java 날짜 유효성(포멧) 체크  (1) 2020.07.14
toString()  (0) 2020.04.20