- Java.util 包类
- Java.util - 首页
- Java.util - ArrayDeque
- Java.util - ArrayList
- Java.util - Arrays
- Java.util - BitSet
- Java.util - Calendar
- Java.util - Collections
- Java.util - Currency
- Java.util - Date
- Java.util - Dictionary
- Java.util - EnumMap
- Java.util - EnumSet
- Java.util - Formatter
- Java.util - GregorianCalendar
- Java.util - HashMap
- Java.util - HashSet
- Java.util - Hashtable
- Java.util - IdentityHashMap
- Java.util - LinkedHashMap
- Java.util - LinkedHashSet
- Java.util - LinkedList
- Java.util - ListResourceBundle
- Java.util - Locale
- Java.util - Observable
- Java.util - PriorityQueue
- Java.util - Properties
- Java.util - PropertyPermission
- Java.util - PropertyResourceBundle
- Java.util - Random
- Java.util - ResourceBundle
- Java.util - ResourceBundle.Control
- Java.util - Scanner
- Java.util - ServiceLoader
- Java.util - SimpleTimeZone
- Java.util - Stack
- Java.util - StringTokenizer
- Java.util - Timer
- Java.util - TimerTask
- Java.util - TimeZone
- Java.util - TreeMap
- Java.util - TreeSet
- Java.util - UUID
- Java.util - Vector
- Java.util - WeakHashMap
- Java.util 包额外内容
- Java.util - 接口
- Java.util - 异常
- Java.util - 枚举
- Java.util 有用资源
- Java.util - 有用资源
- Java.util - 讨论
Java PriorityQueue 类
简介
Java PriorityQueue 类是一个基于优先级堆的无界优先级队列。以下是关于 PriorityQueue 的重要几点:
优先级队列的元素根据它们的自然顺序排序,或者根据在队列构造时提供的比较器排序,这取决于使用哪个构造函数。
优先级队列不允许空元素。
依赖自然顺序的优先级队列也不允许插入不可比较的对象。
类声明
以下是java.util.PriorityQueue类的声明:
public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable
参数
以下是java.util.PriorityQueue类的参数:
E - 这是此集合中保存的元素的类型。
类构造函数
序号 | 构造函数和描述 |
---|---|
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) 这将创建一个包含指定有序集中元素的 PriorityQueue。 |
类方法
序号 | 方法和描述 |
---|---|
1 | boolean add(E e)
此方法将指定的元素插入到此优先级队列中。 |
2 | void clear()
此方法从此优先级队列中删除所有元素。 |
3 | Comparator<? super E> comparator()
此方法返回用于对该队列中的元素进行排序的比较器,如果此队列是根据其元素的自然顺序排序的,则返回 null。 |
4 | boolean contains(Object o)
如果此队列包含指定的元素,则此方法返回 true。 |
5 | void forEach(Consumer<? super E> action)
此方法对 Iterable 的每个元素执行给定的操作,直到所有元素都已处理或操作引发异常。 |
6 | Iterator<E> iterator()
此方法返回此队列中元素的迭代器。 |
7 | boolean offer(E e)
此方法将指定的元素插入到此优先级队列中。 |
8 | boolean remove(Object o)
如果存在,此方法从此队列中删除指定元素的一个实例。 |
9 | boolean removeAll(Collection<?> c)
此方法删除此集合中也包含在指定集合中的所有元素(可选操作)。 |
10 | boolean removeIf(Predicate<? super E> filter)
此方法删除满足给定谓词的此集合的所有元素。 |
11 | boolean retainAll(Collection<?> c)
此方法仅保留此集合中包含在指定集合中的元素(可选操作)。 |
12 | Spliterator<E> spliterator()
此方法在此队列中的元素上创建一个延迟绑定且快速失败的 Spliterator。 |
13 | <T> T[] toArray(T[] a)
此方法返回一个包含此队列中所有元素的数组;返回数组的运行时类型是指定数组的类型。 |
继承的方法
此类继承自以下类的 方法:
- java.util.AbstractQueue
- java.util.AbstractCollection
- java.util.Object
- java.util.Collection
向优先级队列添加项示例
以下示例显示了 Java PriorityQueue add(E) 方法的使用,用于添加整数。我们使用 add() 方法为每个元素添加几个整数到 PriorityQueue 对象,然后打印每个元素以显示已添加的元素。
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