2013-03-14 2 views
-2

정렬 개체

Employee { 
    int id; 
    String name; 
    Date DOB; 
} 

내가 다른 일 100 개체를 만들고 설정에 넣어,하지만 오늘은 그들이 DOB에 분류 원하고 이름에 다른 일, 나는 Employee 클래스가 있다고 가정 에. 세 개의 Comparator를 만들 수 있지만 Collections.sort는 List를 첫 번째 매개 변수로 사용하므로이 비교자를 어디서 통과해야하는지 확신 할 수 없습니다.
TreeSet (생성자로 Comparator를 허용)이 유일한 해결책입니까?

+1

연구 결과를 알려주십시오. * 귀하의 질문 제목에 맞는 Google 검색 횟수 : [조회수] (https://www.google.com/search?q=sort+objects+in+set&aq=f&oq=sort+objects+in+set&aqs=chrome.0.57 j60j0l2j60.1517 & sourceid = chrome & ie = UTF-8) – djechlin

+0

구성에 의해, 예를 들어 HashSet은 정렬되지 않습니다. 그러므로'sort' 메소드를 적용하는 것은별로 의미가 없습니다. 주요 옵션 : 데이터를 목록에 저장 한 다음 TreeSet에 정렬하거나 저장합니다. – assylias

+1

@assylias - OP는'TreeSet'을 언급했지만'HashSet'는 언급하지 않았습니다. 나는 OP가 이미 주문을 지원하는'Set' 구현체를 사용하는 것을 알고 있다고 생각합니다. 'TreeSet'은 여전히'Set'입니다. –

답변

0

TreeSet은 항상 일부 비교 자에 따라 정렬되는 집합입니다. 그래서 각각의 비교기로 세 가지 세트를 가질 수 있습니다.

0

Set에는 주문이 없습니다. 그것들은 수학 세트와 같습니다.

주문을 원하면, 예를 들어 List이 필요합니다. 그런 다음 정렬하거나 원하는 순서를 지정할 수 있습니다.

에서 List을 작성한 다음 원하는 Comparator을 적용해야합니다. 다시 정렬하려면 을 사용하여 sort()을 다시 적용하십시오.