【发布时间】:2014-06-18 07:26:20
【问题描述】:
我知道,队列遵循 FIFO(先进先出)顺序,但我不确定为什么下面的 java 示例程序会出现以下输出
JAVA 示例
public static void main(String args[]) {
Queue<String> q = new PriorityQueue<String>();
q.add("3");
q.add("1");
q.add("2");
Iterator<String> itr = q.iterator();
while (itr.hasNext()) {
System.out.println(itr.next() + " ");
}
}
输出:
1
3
2
根据java.util.PriorityQueue.PriorityQueue()的Java文档
Creates a PriorityQueue with the default initial capacity (11) that orders its elements according to their natural ordering.
Q1) 谁能解释一下为什么输出是 1 3 2 以及如何 自然秩序在这里起作用。
Q2) 我检查了自然排序及其与 可比/可比,但它们不是为了 仅排序(升序/降序)顺序??
【问题讨论】:
-
对不起!初始示例使用
LinkedList。现在更新Java 示例使用PriorityQueue。
标签: java collections queue