728x90
컬렉션을 정렬하는데 필요한 메서드
Arrays.sort()는 사실상 해당 타입 클래스의 Comparable의 구현에 의해 정렬되었던 것이다.
1. Comparable
-
정의
- 기본적으로 적용되는 정렬 기준이 되는 메서드를 정의하는 인터페이스
- Integer, Double 클래스 : 오름차순 정렬
- String 클래스 : 사전순 정렬 -
구현 방법
- Comparable interface를 implements 후 compareTo() 메서드를 오버라이드한다.
- compareTo() 메서드 작성법
현재 객체 < 파라미터로 넘어온 객체 : 음수 리턴
현재 객체 = 파라미터로 넘어온 객체 : 0 리턴
현재 객체 > 파라미터로 넘엉노 객체 : 양수 리턴
2. Comparator
-
정의
- 기본 정렬 기준 외에 다른 기준으로 정렬하고자 할 때 사용한다.
- 내림차순으로 정렬 할 때 많이 사용한다. - 구현 방법
- Comparator interface를 implements 후 compare() 메서드를 오버라이드한다.
- compare() 메서드 작성법
첫 번째 파라미터로 넘어온 객체 (o1) < 두 번째 파라미터로 넘어온 객체 (o2) : 음수 리턴 (내림차순)
첫 번째 파라미터로 넘어온 객체 (o1) = 두 번째 파라미터로 넘어온 객체 (o2) : 0 리턴
첫 번째 파라미터로 넘어온 객체 (o1) > 두 번째 파라미터로 넘어온 객체 (o2) : 양수 리턴 (오름차순) - 사용 방법 예시


※ 내림차순을 원할 경우 compare() 메서드 내의 매개변수 o1과 o2의 값을 서로 바꾸기