import java.util.*;
class TestCollection12 {
public static void main(String args[]) {
PriorityQueue<String> queue = new PriorityQueue<String>();
queue.add("Amit");
queue.add("Vijay");
queue.add("Karan");
queue.add("Jai");
queue.add("Rahul");
System.out.println("head:"+queue.element());
System.out.println("head:"+queue.peek());
System.out.println("iterating the queue elements:");
Iterator itr=queue.iterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}
queue.remove();
queue.poll();
System.out.println("after removing two elements:");
Iterator<String> itr2=queue.iterator();
while (itr2.hasNext()) {
System.out.println(itr2.next());
}
}
}
amit amit amit vijay karan jai rahul
karan jai rahul
答案 0 :(得分:0)
来自doc: PriorityQueue具有默认初始容量(11),根据其自然顺序对其元素进行排序。 元素()&amp; peek返回队列的头部。 第一次迭代后
Amit
Jai
Karan
Vijay
Rahul
删除()&amp; poll() - &gt;删除队列的头部。 第二次迭代后,输出将是
Karan
Rahul
Vijay
按预期工作!
答案 1 :(得分:0)
这是关于priorty排队的全部。 在优先级队列中,它存储在数组中,如数据结构。对于您的示例,它存储为;
[0] "Amit"
[1] "Jai"
[2] "Karan"
[3] "Vijay"
[4] "Rahul"
始终零索引元素是顶部元素,当您查看或轮询时,将轮询第一个元素,并根据此更改数组。
第一次删除调用后,数组更改如下。
[0] "Jai"
[1] "Rahul"
[2] "Karan"
[3] "Vijay"
再次调用民意调查后;
[0] "Karan"
[1] "Rahul"
[2] "Vijay"
作为总结,top元素始终是最小的(或最大的)元素。弹出订单后更改。您可以在https://en.wikipedia.org/wiki/Priority_queue
上阅读详细信息