一、优先级队列
优先级队列是一种先进先出的数据结构,一般情况下PriorityQueue会提供两个基本的操作:返回优先级最高的对象和添加新的对象。
1 PriorityQueue的使用
1.1 优先级队列的构造
PriorityQueue(): 创建一个默认容量为11的空优先级队列;
PriorityQueue<Integer> q = new PriorituQueue<>();
PriorityQueue(int initialCapaciy): 创建一个初始容量为initialCapacity的优先级队列;
PriorityQueue<Integer> q = new PriorituQueue<>(100);
PriorityQueue(Collection<?extends E>c): 用集合来创建优先级队列
ArrayList<Integer> list = new ArrayList<>();
list.add(9);
list.add(7);
list.add(2);
list.add(1);
PriorityQueue<Integer> q = new PriorituQueue<>(list);
1.2 优先级队列的基本操作
boolean offer(E e): 插入元素e,如果e为空,则会出现NullPointerException异常
E peek(): 获取优先级最高的元素
E poll(): 删除优先级最高的元素并返回
int size(): 获取有效元素个数
void clear(): 清空