Comparator, Comparable
이 둘은 모두 인터페이스로, 컬렉션을 정렬하는데 필요한 메서드를 정의하고 있다. Arrays.sort()를 통해서 정렬이 가능한 클래스들의 경우 모두 Comparable 인터페이스를 구현하고 있다. 대표적으로 Wrapper 클래스들과 String, Date, File과 같은 클래스들이 있다.
public interface Comparator { int compare(Object o1, Object o2); } public interface Comparable { int compareTo(Object o); }
compareTo()의 경우 비교하는 두 객체가 같으면 0, 비교하는 값보다 작으면 음수, 크면 양수를 반환하도록 구현해야 한다. compare()의 경우에도 비교해서 0, 음수, 양수 중 하나를 반환하도록 구현해야 한다.
Comparable 인터페이스를 구현한 클래스들은 기본적으로 오름차순으로 정렬하도록 구현이 되어있다. 만약 특정 기준으로 정렬을 하고 싶은 경우에는 Comparator를 구현해 정렬할 수 있다.
참고
Java의 정석 (남궁 성 지음)
'Web > Java' 카테고리의 다른 글
Collections Framework (6) HashMap, TreeMap (0) | 2022.02.21 |
---|---|
Collections Framework (5) HashSet, TreeSet (0) | 2022.02.21 |
Collections Framework (3) Arrays (0) | 2022.02.16 |
Collections Framework (2) Iterator, ListIterator, Enumeration (0) | 2022.02.15 |
Collections Framework (1) ArrayList, LinkedList (0) | 2022.02.08 |
댓글