Java에서 가장 큰 요소를 먼저 반환하는 우선 순위에 무엇을 사용해야합니까?
문제
Java 's 우선권 목록의 헤드에 가장 작은 요소를 배치하지만 머리에 가장 큰 요소를 놓아야합니다. 그렇게 행동하는 우선 순위 대기열을 얻는 가장 깔끔한 방법은 무엇입니까?
이 대기열에 저장된 수업을 썼기 때문에 결과를 뒤집을 수 있습니다. compareTo
,이 줄 바깥에는 사용되지 않습니다.
그러나 나는 코드를 내가 모델링하는 것을 정확하게 표현하는 것을 좋아합니다. 제가하려는 것은 가장 먼저 가장 큰 정의가 아니라 최소한의 특이한 정의를 가지고 있다고 말해야합니다.
편집] 간단히 감사합니다. 모두에게 감사합니다. 비교기는 글을 쓰는 방법을 스스로 가르치 자마자 필요한 것 같습니다.
다른 팁
나는 단지 비교기를 사용합니다. 이런 식으로 정렬 순서는 클래스에 첨부되지 않고 대기열에서만 사용됩니다.
간단히 제공하십시오 PriorityQueue
사용자 지정 Comparator<? super E>
생성자를 Throgh하고 요소의 순서를 변경하십시오.
Javadocs :
PriorityQueue(int initialCapacity, Comparator<? super E> comparator)
비교기 주석에 추가하려면 다음을 확인하십시오.
Collections.reverseOrder();
PriorityQueue의 API 문서는 다음과 같이 말합니다. 따라서 최소한의 정의는 특정 순서를 기반으로 주관적이므로 비교기를 제공 할 수있는 옵션이 있습니다.
제휴하지 않습니다 StackOverflow