2011-10-18 3 views
1

Java TreeSet가 객체 정렬 논리를 처리하기 위해 비교 자로 설정된 경우 객체 (클래스)도 비교 가능 객체를 구현하고 유효한 compareTo 메소드가 구현되어 있습니다.TreeSet 비교 자 또는 comparble.compareTo() 우선 순위

우선 순위는 어느 것입니까? 비교 자 내의 논리 또는 compareTo의 논리?

감사합니다.

답변

5

TreeSet의 생성자에 전달 된 Comparator가 우선 순위를 갖습니다. 이렇게하면 객체의 compareTo에 의해 구현 된 것과 다른 비교 알고리즘을 사용할 수 있습니다. 그렇지 않은 경우 TreeSet과 다른 비교 알고리즘을 사용할 수 없습니다.

+0

+1 포인트를 명확히합니다. –

4

이 꽤 명확하게 in the Javadocs (강조는 추가) 철자된다

public TreeSet(Comparator<? super E> comparator)
는 새로운 빈 상태 (empty)의 트리 세트, 지정된 콤퍼레이터에 따라 정렬 를 구축합니다. ...

매개 변수 :
-이 집합을 정렬하는 데 사용되는 비교 자입니다.

+0

+1을 참조하십시오. –