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>