Gan*_*ira 5 java collections priority-queue
我无法理解正在发生的内部排序PriorityQueue
:
import java.util.*;
public class TryME {
public static void main(String args[]) {
PriorityQueue<Integer> q = new PriorityQueue<Integer>();
q.add(3);
System.out.print(q);
System.out.print("");
q.add(1);
System.out.print(q);
System.out.print("");
q.add(9);
System.out.print(q);
System.out.print("");
q.add(6);
System.out.print(q);
System.out.print("");
q.add(2);
System.out.print(q);
System.out.print("");
}
}
Run Code Online (Sandbox Code Playgroud)
[3][1, 3][1, 3, 9][1, 3, 9, 6][1, 2, 9, 6, 3]
Run Code Online (Sandbox Code Playgroud)
这种排序是在什么基础上进行的?
javadoc说:
此类及其迭代器实现了 Collection 和 Iterator 接口的所有可选方法。iterator() 方法中提供的迭代器不保证以任何特定顺序遍历优先级队列的元素。如果需要有序遍历,请考虑使用 Arrays.sort(pq.toArray())。
如果你执行
while (!q.isEmpty()) {
System.out.println(q.poll());
}
Run Code Online (Sandbox Code Playgroud)
您将看到元素确实已正确排序。
归档时间: |
|
查看次数: |
3643 次 |
最近记录: |