我有一个java程序,它是这样的
公共类 PriorityQueue 示例 {
public static void main(String[] args) {
PriorityQueue<Integer> pq = new PriorityQueue<Integer>();
pq.add(10);
pq.add(1);
pq.add(9);
pq.add(2);
pq.add(8);
pq.add(3);
pq.add(7);
pq.add(4);
pq.add(6);
pq.add(5);
System.out.println(pq);
}
}
我的问题是为什么优先级队列不对它们进行排序。根据java规范,它实现了可比较并保持排序顺序(自然排序)
我的程序输出如下: [1, 2, 3, 4, 5, 9, 7, 10, 6, 8]
它已排序,但内部元素存储在heap。如果你打电话peek()
, poll()
, or remove()
,您将获得正确的顺序(这就是访问队列的方式)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)