Java PriorityQueue 类

Java.util 包提供了一个 PriorityQueue 类,其中无限基于优先级堆的优先级队列。优先级队列的元素根据其自然顺序进行排序,或者通过队列构造时提供的比较器进行排序,具体取决于使用的构造函数。优先级队列不允许有空元素。依赖自然排序的优先级队列也不允许插入不可比较的对象。

类声明

java.util.PriorityQueue 类的声明为:

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

这里,E是容器维护的元素类型。

类构造函数

序号构造函数和描述
1.PriorityQueue()
创建一个具有默认初始容量 (11) 的 PriorityQueue,并根据元素的自然顺序对其元素进行排序。
2.PriorityQueue(Collection<? extends E> c)
创建一个 PriorityQueue,其中包含指定集合。
3.PriorityQueue(Comparator<? super E> comparator)
创建一个默认初始容量的 PriorityQueue其元素根据指定的比较器排序。
4.PriorityQueue(int initialCapacity)
创建一个具有指定初始容量的 PriorityQueue,对其进行排序元素按照其自然顺序排列。
5.PriorityQueue(int initialCapacity, Comparator<? super E> comparator)
创建一个 PriorityQueue,其中指定的初始容量,根据指定的比较器对其元素进行排序。
6.PriorityQueue(PriorityQueue<? extends E> c)
创建一个 PriorityQueue,其中包含指定优先级队列。
7.PriorityQueue(SortedSet<? extends E> c)
创建一个 PriorityQueue,其中包含指定的排序集。

java.util.PriorityQueue 方法

java.util.PriorityQueue 类有许多方法,如下所示:

成员方法

序号方法和描述
1.boolean add(E element)
将指定元素插入此优先级队列。
2.void clear()
从此优先级队列中删除所有元素。
3.Comparator<? super E> comparator()
返回用于对该队列中的元素进行排序的比较器,如果该队列是根据其元素的自然顺序排序的,则返回 null。
4.boolean contains(Object obj)
如果队列包含指定元素,则返回 true。
5.Iterator<E> iterator()
返回对此队列中元素的迭代器。
6.boolean offer(E element)
将指定元素插入此优先级队列。
7.E peek()
检索但不删除此队列的头部,如果此队列为空,则返回 null。
8.E poll()
检索并删除此队列的头部,如果此队列为空,则返回 null。
9.boolean remove(Object obj)
从此队列中删除指定元素的单个实例(如果存在)。
10。int size()
返回此队列中的元素数量。
11。Spliterator<E> spliterator()
对此队列中的元素创建一个后期绑定和快速失败的分割器。
12。Object[] toArray()
返回一个包含此队列中所有元素的数组。
13。<T> T[] toArray( T[] a)
返回一个包含此队列中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。

继承的方法

该类继承了以下类的方法:

  • java.lang.Object
  • java.util.AbstractCollection<E>
  • java.util.AbstractQueue<E>