📜  Java中的PriorityQueue poll() 方法(1)

📅  最后修改于: 2023-12-03 15:01:59.957000             🧑  作者: Mango

Java中的PriorityQueue poll() 方法

在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