Java编程中的PriorityQueue类


java.util.PriorityQueue 类是一个基于优先级堆的无界优先级队列。以下是关于 PriorityQueue 的重要要点:

  • 优先级队列的元素根据其自然排序或在队列构造时提供的 Comparator 进行排序,具体取决于使用哪个构造函数。

  • 优先级队列不允许 null 元素。

  • 依赖自然排序的优先级队列也不允许插入不可比较的对象。

类声明

以下是 java.util.PriorityQueue 类的声明:

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

参数

以下是 java.util.PriorityQueue 类的参数:

E - 此集合中保存的元素的类型。

类构造函数

序号 构造函数 & 描述
1

PriorityQueue()

这将创建一个 PriorityQueue,其默认初始容量为 (11),并根据其自然排序对元素进行排序。

2

PriorityQueue(Collection<? extends E> c)

这将创建一个包含指定集合中元素的 PriorityQueue。

3

PriorityQueue(int initialCapacity)

这将创建一个具有指定初始容量的 PriorityQueue,并根据其自然排序对元素进行排序。

4

PriorityQueue(int initialCapacity, Comparator<? super E> comparator)

这将创建一个具有指定初始容量的 PriorityQueue,并根据指定的 Comparator 对元素进行排序。

5

PriorityQueue(PriorityQueue<? extends E> c)

这将创建一个包含指定优先级队列中元素的 PriorityQueue。

6

PriorityQueue(SortedSet<? extends E> c)

这将创建一个包含指定排序集中元素的 PriorityQueue。

类方法

序号 方法 & 描述
1 boolean add(E e)

此方法将指定元素插入此优先级队列。

2 void clear()

此方法从此优先级队列中删除所有元素。

3 Comparator<? super E> comparator()

此方法返回用于对队列中元素进行排序的 Comparator,如果此队列根据其元素的自然排序进行排序,则返回 null。

4 boolean contains(Object o)

如果此队列包含指定的元素,则此方法返回 true。

5 Iterator<E> iterator()

此方法返回此队列中元素的迭代器。

6 boolean offer(E e)

此方法将指定元素插入此优先级队列。

7 E peek()

此方法检索但不删除此队列的头部,如果此队列为空,则返回 null。

8 E poll()

此方法检索并删除此队列的头部,如果此队列为空,则返回 null。

9 boolean remove(Object o)

如果存在,此方法从此队列中删除指定元素的单个实例。

10 int size()

此方法返回此集合中的元素数。

11 Object[] toArray()

此方法返回一个包含此队列中所有元素的数组。

12 <T> T[] toArray(T[] a)

此方法返回一个包含此队列中所有元素的数组;返回数组的运行时类型是指定数组的类型。

继承的方法

此类继承自以下类的方法:

  • java.util.AbstractQueue
  • java.util.AbstractCollection
  • java.util.Object
  • java.util.Collection

更新于: 2019年7月30日

97 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告