2013-06-28 3 views
17

LinkedHashSet을 정렬 할 수 있는지 궁금합니다. 난 그냥 목록으로 주조 할 수없는 오류가 발생합니다 문 그러나 LinkedHashSet 정렬하기

Collections.sort((List<Comparable> paragraph);

을 시도했습니다. 이 작업을 수행하는 방법이 있습니까? 아니면 다른 데이터 구조를 사용해야합니까?

+6

대신 'TreeSet'을 사용하십시오. –

+1

SortedSet – Tala

+1

대신 sortedSet을 사용할 수 있습니다. 수학적보기에서'set'이 순서가 없습니다 – nachokk

답변

25

비교 (예 : 정렬 된 주문)를 기반으로 주문하는 경우 TreeSet 또는 ConcurrentSkipListSet과 같이 SortedSet을 사용해야합니다.

LinkedHashSet을 기준으로 주문 번호을 유지합니다.

당신은 정말 당신이 실제로 (질문은 우리에게 paragraph의 유형을 말하지 않지만 그래서 나는 그것이 String입니다 가정합니다)

List<String> listParagraph = new ArrayList<String>(paragraph); 
Collections.sort(listParagraph) 
List를 구성하여 목록에 LHS를 변환 할 수 있습니다 Collections.sort를 사용하려는 경우

하지만 그 방법이 최선의 방법은 아닙니다.

4

Collections.sortSet에서 작동하지 않으며 List에만 적용됩니다. 이미 Set에있는 데이터를 정렬해야하는 경우 먼저 List에 추가해야 할 수 있습니다.

1

TreeSet에 LinkedHashSet 객체 (linkedHashSet)를 추가하여 정렬 할 수 있습니다.

TreeSet<T> treeSet = new TreeSet<t>(); 
treeSet.addAll(linkedHashSet); 

treeSet은 정렬 된 집합입니다.

이 T 타입을 Comparator 인터페이스를 구현하여 비교할 수 있도록 만들어야합니다.