概念
前面介绍过队列,
队列是一种先进先出
(FIFO)
的数据结构
,但有些情况下,
操作的数据可能带有优先级,一般出队
列时,可能需要优先级高的元素先出队列
注意
1.堆中某个节点的值总是不大于或不小于其父节点的值;
2.堆总是一棵完全二叉树。
实现代码





.常用接口介绍(PriorityQueue)
1 PriorityQueue
的特性
PriorityQueue
是线
程不安全的,
PriorityBlockingQueue
是线程安全的
关于PriorityQueue的使用要注意:
1.
使用时必须导入
PriorityQueue
所在的包,
2. PriorityQueue
中放置的
元素必须要能够比较大小,不能插入无法比较大小的对象,否则会抛出
ClassCastException
异常
3.
不能
插入
null
对象,否则会抛出
NullPointerException
4.
没有容量限制,可以插入任意多个元素,其内部可以自动扩容
5.
插入和删除元素的时间复杂度为
6.
PriorityQueue
底层使用了堆数据结构
7.
PriorityQueue
默认情况下是小堆
---
即每次获取到的元素都是最小的元素
PriorityQueue
常用接口介绍


注意:默认情况下,PriorityQueue队列是小堆,如果需要大堆需要用户提供比较器

