가능한 중복 :
compare ()와 compareTo () 사이의 차이점
Java : Comparable과 Comparator를 구현하는 것의 차이점은 무엇입니까?
Comparable과 Comparator의 주요 차이점은 무엇입니까?
어떤 시나리오에서 다른 시나리오보다 선호 되는가?
감사
업데이트 됨 - 좋은 링크 예!
http://www.digizol.com/2008/07/java-sorting-comparator-vs-comparable.html
수업이 구현 될 때유사한,compareTo
클래스의 메소드는 해당 객체의 "자연"순서를 정의합니다. 이 메소드는 (요구되지는 않았지만) 객체에 대한 다른 메소드와 일치하도록 계약 상 의무가 있습니다. 예를 들어, 0은 객체에 대해 항상 반환되어야합니다..equals()
비교는 true를 반환합니다.
에이비교 측정기두 객체를 비교하는 방법에 대한 자체 정의이며 자연 순서와 정렬되지 않는 방식으로 객체를 비교하는 데 사용할 수 있습니다.
예를 들어, 문자열은 일반적으로 알파벳순으로 비교됩니다. 그래서"a".compareTo("b")
알파벳 비교를 사용합니다. Strings의 길이를 비교하고 싶다면 맞춤형 비교기를 작성해야합니다.
요컨대, 그다지 큰 차이는 없습니다. 그것들은 비슷한 의미의 양쪽 끝이다. 일반적으로 자연 순서에 필적할만한 기능을 구현합니다 (자연 순서 정의가 해석에 열려 있음). 다른 정렬 또는 비교 요구를 위해 비교자를 작성합니다.
Comparator
제어 할 수없는 유형에 대한 사용자 지정 비교 논리를 제공 할 수있는 방법을 제공합니다.
Comparable
구현중인 객체를 비교하는 방법을 지정할 수 있습니다.
클래스를 제어 할 수없는 경우 (또는 제어 할 수있는 객체를 비교하는 여러 가지 방법을 제공하려는 경우) 분명히 다음을 사용하십시오.Comparator
.
그렇지 않으면 다음을 사용할 수 있습니다.Comparable
.