2016-10-14 8 views
0

은 내가 얻은 정렬 트리 맵에Java 1.6에서 Comparator 클래스를 사용하여 TreeMap을 정렬 할 수 있습니까?

QuotaTirComparator bvc = new QuotaTirComparator(mappaQuote); 
TreeMap<Integer, QuotaTir> sorted_map = new TreeMap<Integer, QuotaTir>(bvc); 

을하려고 자바 6 응용 프로그램에 다음과 같은 문제가있다.

The constructor TreeMap<Integer,QuotaTir>(QuotaTirComparator) is undefined

이유 :

그러나 Eclipse는 나에게 다음과 같은 오류 메시지가 줄? Java 6에서이 기능을 사용할 수 있습니까? 뭐가 잘못 되었 니? 내가 뭘 놓치고 있니?

+0

트리 맵에서 비교기는 비교 자 이 아닌 비교 자 을 확장해야합니다. TreeMap의 생성자는 "TreeMap (Comparator comparator)"로 정의됩니다. 여기서 K는 Key 유형입니다. 이것을 구별하는 또 다른 방법은 "아니, 할 수 없다"입니다. – DwB

답변

3

내 생각에 QuotaTirComparatorComparator이 아닙니다. 분명히 Comparator는 값이 아니라 키에 대한 것이어야합니다. Integer은 이미 자연 순서가 있으므로 비교기를 모두 제거하려고합니다.

트리는 관련 값을 갖는 으로 정렬됩니다. QuoteTir을 정렬하려면 SortedSet이 필요합니다.

비교기 소요 생성자는

http://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html#TreeMap-java.util.Comparator-

1

가 문서를 체크 자바 1.2을 첨가 하였다 http://docs.oracle.com/javase/6/docs/api/java/util/TreeMap.html#TreeMap(java.util.Comparator)

비교기 키 아닌 값을 비교한다.

+0

이것은 초기 값이지만 비교기 이름과 값 유형 이름을 기반으로했는데 컴파일러가이 경우에 대해 다른 오류를 줄 것이라고 알려줍니다. 이것은 아마도 피터가 지적한 문제를 해결 한 후에 나타날 질문에 대한 대답 일 것입니다. – Pshemo

+0

Eclipse는 TreeMap의 매개 변수화 된 유형 정보를 제외하고는 그가 설명한 것과 동일한 오류를 제공합니다. – Adam

+0

OK, 놓친 부분은 OP가 실제로 매개 변수화 된 유형의 오류를 게시했으나 브라우저 '<..>'부분이 표시되지 않았기 때문일 수 있습니다. 나는 그 질문에 그것을 고쳤다. – Pshemo