Java 简明教程

Java PriorityQueue Class

Introduction

Java PriorityQueue 类是一个基于优先级堆的非有界优先级队列。以下是有关 PriorityQueue 的重要事项:

  1. 优先级队列中的元素按其自然顺序或通过在队列构建时提供的比较器进行排序,具体取决于使用的构造函数。

  2. 优先队列不允许空元素。

  3. 也依赖于自然排序的优先级不再允许插入不可比较对象。

Class declaration

以下是*java.util.PriorityQueue* 类的声明 −

public class PriorityQueue<E>
   extends AbstractQueue<E>
   implements Serializable

Parameters

以下是*java.util.PriorityQueue* 类的参数 −

E − 这是此集合中保留元素的类型。

Class constructors

Class methods

Methods inherited

此类从以下类中继承方法:

  1. java.util.AbstractQueue

  2. java.util.AbstractCollection

  3. java.util.Object

  4. java.util.Collection

Adding an Item to a Priority Queue Example

以下示例展示了 Java PriorityQueue add(E) 方法的用法来添加 Integers。我们使用 add() 方法调用按元素为 PriorityQueue 对象添加一些 Integers,然后打印每个元素以显示添加的元素。

package com.tutorialspoint;

import java.util.PriorityQueue;

public class PriorityQueueDemo {
   public static void main(String[] args) {

      // create an empty priority queue with an initial capacity
      PriorityQueue<Integer> queue = new PriorityQueue<>(5);

      // use add() method to add elements in the queue
      queue.add(20);
      queue.add(30);
      queue.add(20);
      queue.add(30);
      queue.add(15);
      queue.add(22);
      queue.add(11);

      // let us print all the elements available in queue
      for (Integer number : queue) {
         System.out.println("Number = " + number);
      }
   }
}

让我们编译并运行上述程序,这将生成以下结果 −

Number = 11
Number = 20
Number = 15
Number = 30
Number = 30
Number = 22
Number = 20