public class Flight implements Comparable {
....的PriorityQueue排序
public int compareTo(Object obj){
Flight f = (Flight) obj;
Integer i1 = (Integer) f.priority;
Integer i2 = (Integer) priority;
if(f == null)
return 1;
else
return i2.compareTo(i1);
}
....
public class JavaPriorityFlightQueue {
public PriorityQueue flights;
....
public void joinQueue(Flight f){
flights.add(f);
Collections.sort(flights);
}
.....
除離子在線程「主要」 java.lang.Error的:未解決問題彙編: 在類型類別的方法的排序(列表)不適用於
at section3.JavaPriorityFlightQueue.joinQueue(JavaPriorityFlightQueue.java:31)
at section3.FlightTest003.main(FlightTest003.java:19)
我使用的確切相同的compareTo爲參數(的PriorityQueue)一個LinkedList和它的作品,並且一切都是一樣的我沒有遺漏某些東西(我認爲)。我不明白它是如何工作的LinkedList,但不是PriorityQueue。
請檢查此問題http://stackoverflow.com/questions/683041/java-how-do-i-use-a-priorityqueue –
PriorityQueue的下一個值始終最低。如果使用正確的比較器構造PriorityQueue,則不需要額外的排序。 –