# java.util.PriorityQueue类 - Java.util包
**java.util.PriorityQueue **类是基于优先级堆的无界优先级队列。以下是有关的PriorityQueue的要点:
* 优先级队列中的元素根据其自然顺序进行排序,或者按照队列构造时提供的Comparator,这取决于使用的构造方法。
* 优先级队列不允许null元素。
* 优先级队列依靠自然顺序也不允许插入不可比较的对象。
## 类声明
以下是java.util.PriorityQueue类的声明:
```
public class PriorityQueue
extends AbstractQueue
implements Serializable
```
## 参数
以下是java.util.PriorityQueue类的参数:
* E -- 这是在这个集合所持元素的类型。
## 类构造函数
| S.N. | 构造函数 & 描述 |
| --- | --- |
| 1 | **PriorityQueue() ** 这将创建一个具有默认初始容量(11),根据其自然顺序对其元素PriorityQueue。 |
| 2 | **PriorityQueue(Collection<? extends E> c) ** 这将创建一个包含指定集合中的元素的PriorityQueue。 |
| 3 | **PriorityQueue(int initialCapacity) ** 这将创建与根据其自然顺序对其元素指定的初始容量创建一个PriorityQueue。 |
| 4 | **PriorityQueue(int initialCapacity, Comparator<? super E> comparator) ** 这将创建与根据指定的比较器对其元素指定的初始容量创建一个PriorityQueue。 |
| 5 | **PriorityQueue(PriorityQueue<? extends E> c) ** 这将创建一个包含指定优先级队列中的元素一个PriorityQueue。 |
| 6 | **PriorityQueue(SortedSet<? extends E> c) ** 这将创建一个包含指定有序set的元素一个PriorityQueue。 |
## 类方法
| S.N. | 方法 & 描述 |
| --- | --- |
| 1 | [boolean add(E e)](http://www.yiibai.com/java/util/priorityqueue_add.html) 此方法将指定元素插入此优先级队列。 |
| 2 | [void clear()](http://www.yiibai.com/java/util/priorityqueue_clear.html) 此方法删除所有来自此优先级队列中的元素。 |
| 3 | [Comparator<? super E> comparator() ](http://www.yiibai.com/java/util/priorityqueue_super.html) 此方法返回用于排序在此队列中,或者为null的元素;如果此队列根据其元素的自然顺序进行排序的比较器。 |
| 4 | [boolean contains(Object o) ](http://www.yiibai.com/java/util/priorityqueue_contains.html) 如果此队列包含指定的元素,此方法返回true。 |
| 5 | [Iterator<E> iterator() ](http://www.yiibai.com/java/util/priorityqueue_iterator.html) 此方法返回一个迭代器在此队列中的元素。 |
| 6 | [boolean offer(E e) ](http://www.yiibai.com/java/util/priorityqueue_offer.html) 此方法将指定元素插入此优先级队列。 |
| 7 | [E peek()](http://www.yiibai.com/java/util/priorityqueue_peek.html) 此方法检索,但是不移除此队列的头,如果此队列为空,则返回null。 |
| 8 | [E poll()](http://www.yiibai.com/java/util/priorityqueue_poll.html) 此方法检索并移除此队列的头,如果此队列为空,则返回null。 |
| 9 | [boolean remove(Object o) ](http://www.yiibai.com/java/util/priorityqueue_remove.html) 这个方法从队列中移除指定元素的单个实例(如果存在)。 |
| 10 | [int size()](http://www.yiibai.com/java/util/priorityqueue_size.html) 此方法返回这个集合中元素的个数。 |
| 11 | [Object[] toArray() ](http://www.yiibai.com/java/util/priorityqueue_toarray_object.html) 这个方法返回一个包含此队列所有元素的数组。 |
| 12 | [<T> T[] toArray(T[] a) ](http://www.yiibai.com/java/util/priorityqueue_toarray.html) 这个方法返回一个包含此队列所有元素的数组;返回数组的运行时类型是指定数组。 |
## 方法继承
这个类从以下类继承的方法:
* java.util.AbstractQueue
* java.util.AbstractCollection
* java.util.Object
* java.util.Collection