📅  最后修改于: 2023-12-03 15:01:59.957000             🧑  作者: Mango
在Java中,PriorityQueue
是一个基于优先级堆的无界队列。它表示了一组带优先级的元素,优先级通过元素的自然顺序(或者通过构造器中提供的Comparator)来决定。在PriorityQueue
中,具有较高优先级的元素会优先被获取。
poll()
方法是PriorityQueue
类的一个重要方法,用于获取并移除队列中的头部元素。
E poll()
该方法返回队列的头部元素,如果队列为空,则返回null
。
下面是一个使用poll()
方法的示例代码:
import java.util.PriorityQueue;
public class Main {
public static void main(String[] args) {
// 创建一个优先级队列
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();
// 向队列中插入元素
priorityQueue.offer(5);
priorityQueue.offer(1);
priorityQueue.offer(10);
priorityQueue.offer(3);
// 获取并移除头部元素
Integer head = priorityQueue.poll();
System.out.println("头部元素:" + head);
// 遍历剩余元素
while (!priorityQueue.isEmpty()) {
System.out.println("剩余元素:" + priorityQueue.poll());
}
}
}
输出结果:
头部元素:1
剩余元素:3
剩余元素:5
剩余元素:10
上述代码创建了一个优先级队列,并向队列中插入了几个元素。然后,使用poll()
方法获取并移除了队列的头部元素。最后,使用循环遍历并输出剩余元素。
poll()
方法返回null
。Comparable
接口或者在构造队列时指定Comparator
,以便能够进行比较并确定优先级。否则,在调用poll()
方法时可能会抛出ClassCastException
。