目录
2.PriorityQueue中放置的元素必须要能够比较大小,不能插入无法比较大小的对象,否则会抛出 ClassCastException异常
3.不能插入 null 对象,否则会抛出NullPointerException
4.没有容量限制,可以插入任意多个元素,其内部可以自动扩容。
5.PriorityQueue底层使用了堆数据结构,默认情况下是小堆---即每次获取到的元素都是最小的元素。
Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列, PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的。
这里我们主要介绍PriorityQueue:
关于PriorityQueue的使用注意:
1.使用时必须导入 PriorityQueue 所在的包:
import java.util.PriorityQueue;
2.PriorityQueue中放置的元素必须要能够比较大小,不能插入无法比较大小的对象,否则会抛出 ClassCastException异常
PriorityQueue 要求元素能够比较大小,是为了实现其内部的排序功能,确保每次取出的元素都是优先级最高的元素。
3.不能插入 null 对象,否则会抛出NullPointerException
4.没有容量限制,可以插入任意多个元素,其内部可以自动扩容。
5.PriorityQueue底层使用了堆数据结构,默认情况下是小堆---即每次获取到的元素都是最小的元素。
PriorityQueue优先级队列的构造:
第一种:
// 创建⼀个空的优先级队列,底层默认容量是 11
PriorityQueue<Integer> q1 = new PriorityQueue<>();
第二种:
// 创建⼀个空的优先级队列,容量为a
PriorityQueue<Integer> q2 = new PriorityQueue<>(a);
注意:a不能小于1,否则会抛异常。
建立大根堆的PriorityQueue

最低0.47元/天 解锁文章
712





