Comparable<>과 Comparator<>의 차이
둘 다 interface로 implements하여 사용한다.
Comparable<>은 자체가 정렬가능
Comparator<>은 누군가를 정렬하는 것
- Comparable<>
- int compareTo(T o) 을 재정의(overriding)
- 자기 자신과 매개변수 객체를 비교 :내가 사용하는(domain) 클래스에 implements하여 내가 사용하는 클래스와 파라미터로 받은 클래스를 비교한다.
- 객체 자기 자신에게 남과 비교할 수 있는 기준을 주는 것
- 클래스를 수정해야한다는 점
- Comparator<>
- int compare(T o1, T o2) 을 재정의(overriding)
- 두 매개변수 객체를 비교 : 사용자 정의할 클래스(ex> MyComparator)에 implements하여 파라미터 두개를 받아 비교한다.
- 클래스를 수정하지 않고 적용할 수 있다는 점
- 다른 클래스에도 적용할 수 있다는 점
- 다양한 정렬 기준에 따라 Comparator을 implements한 클래스를 여러 개 만들어 적용할 수 있다.
Comparable<>과 Comparator<>가 둘 다 사용될 때, Comparator<>가 적용된다.
728x90
반응형
'JAVA' 카테고리의 다른 글
Overloading과 Overriding (0) | 2024.01.17 |
---|