Java : Priority Queue

标签 java collections priority-queue

我有一个java程序是这样的

公共(public)类 PriorityQueueExample {

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]

最佳答案

它是排序的,但在内部元素存储在中。如果您调用 peek()poll()remove(),您将获得正确的顺序(这就是您访问队列的方式).

关于Java : Priority Queue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7927213/

相关文章:

Java EE 对比。 Java 编程

c# - 附加一个集合对象

java - Java 8 流过滤器对收集方法的优化程度如何?

Java Collection 满时将哪些页面写入磁盘?

c++ - 使用优先级队列初始化 vector

java - 尝试多线程 URL 连接以减少加载时间

java - 如何在 Spring MVC 中向拦截器注入(inject)属性

java - 简单的 Java PriorityQueue<String> 错误

java - RFC 2388 多部分 POST 的服务器实现与 RFC 2047 冲突?

javascript - Javascript 中有消息优先级吗?