[JAVA] Comparable과 Comparator
업데이트:
Comparable과 Comparator
Comparable과 Comparator는 모두 인터페이스이기 때문에 사용하고자 한다면 인터페이스 내에 선언된 메소드를 ‘반드시’ 구현해야 한다.
공식 API
[Comparable] https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html#method.summary
int compareTo(T o)
메소드가 선언되어있으며, Comparable을 사용할 때 compareTo 메소드를 구현해야 한다.
[comparator] https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html#method.summary
선언된 메서드가 많지만, 실질적으로 compare(T o1, T o2)
만을 구현하면 된다.
Comparable과 Comparator의 차이
두 인터페이스는 객체를 비교할 수 있도록 만드는 역할을 한다.
기본 타입은 비교 연산자를 이용해 서로 비교할 수 있지만, 객체같은 경우 서로 비교할 수 없다.
본질적으로 객체는 사용자가 기준을 정해주지 않는 이상 어떤 객체가 더 높은 우선 순위를 갖는지 판단 할 수 없어서, Comparable / Comparator를 이용해 비교한다.
- Comparable
ComparateTo(T o) -> 자기 자신과 매개변수 객체를 비교
자기 자신을 기준으로 상대방과의 차이 값을 비교하여 반환
lang 패키지에 속해있어 import를 해줄 필요가 없다.
- Comparator
Compare(T o1, T o2) -> 두 매개변수 객체를 비교
자기 자신의 상태와 상관없이 파라미터로 들어오는 두 객체를 비교하여 반환
util 패키지에 속해있어 import 해줘야 한다.
[참고 사이트] https://st-lab.tistory.com/243
공유하기
Twitter Google+ LinkedIn
댓글남기기