2013-03-17 8 views
1

그래서 STDIN에서 오는 데이터가 있고 숫자 데이터 필드를 보유하고있는 라인 당 객체를 만들고 있습니다. 이 필드를 기반으로 PriorityQueue 또는 LinkedList 중 하나로 정렬하려고합니다. 이 정렬 후에는 객체가 보유 할 다른 값을 계산할 것입니다 (값은 빈도 등을 기반으로합니다). 그런 다음 두 번째 값을 새 기준으로 사용하여 다른 PQ 또는 LL로 정렬하려고합니다.다른 기준으로 정렬/비교

매번 다른 기준을 사용하여 같은 개체를 두 번 정렬하는 가장 좋은 방법은 무엇입니까? 별개의 compareTo 메소드를 사용하여 동일한 객체의 두 가지 유형을 생성하지 않아도됩니다. 나는 더 나은 방법 theres을 바라고 있어요. 객체의 themsevles에서의 Comparable implemnting의

+1

두 가지 [Comparators] (http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Comparator.html)를 사용하는 것에 대해 생각해 보셨습니까? – A4L

답변

4

INSEAD, 당신은 compartors를 사용한다 : 이것은 비교 다른 논리와 같은 개체를 비교 할 수 있습니다 http://docs.oracle.com/javase/6/docs/api/java/util/Comparator.html

.

+1

+1하지만, 사소한 설명으로 Comparators는 의미가있는 경우 객체 자체에 정의 될 수 있습니다. 예를 들어, 완전한 배송지 주소를 나타내는 Object에서 많은 비교 자, byName, byAddress, byZipCOde 등을 가질 수 있습니다. – user949300

+0

이것이 가능할 경우, 단일 책임 규칙을 위반하기 때문에 수행해야하는지 논쟁의 여지가 있습니다 –

관련 문제