2015-05-13 196 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()方法没有排序,但队列是。