2015-05-13 193 views
0
public static void main(String[] args) { 
    Queue<Integer> queue = new PriorityQueue<>(); 
    for(int i = 10; i>0; i--){ 
     queue.offer(i); 
    } 
    System.out.println(queue); 
}  

這個代碼給出 [1,2,5,4,3,9,6,10,7,8]爲什麼優先級隊列會產生這樣的結果?

爲什麼呢? 由於Integer類的自然順序,我預計它是按升序排列的數字。

+1

優先級隊列不一定是有序列表。最簡單的實現將是一堆。 – Sirko

+0

檢查此鏈接http://stackoverflow.com/questions/7927213/java-priority-queue –

回答

0

您不需要打印隊列。你需要偷看和拉它,它會被分類。 toString()方法沒有排序,但隊列是。