Queue
2、PriorityQueue
- 通过完全二叉树实现的小顶堆
- 优先级队列
- 非线程安全
- 保证每次取出的元素都是队列中权值最小的
- 不允许null值
- 用法
- 构造器
- PriorityQueue()
- PriorityQueue(Collection<? extends E> c)
- 创建一个 PriorityQueue包含在指定集合的元素。
- PriorityQueue(Comparator<? super E> comparator)
- 创建一个默认的初始容量,它的元素排列是按指定的比较器
- PriorityQueue(int initialCapacity)
- PriorityQueue(int initialCapacity, Comparator<? super E> comparator)
- 创建一个具有指定的初始容量,元素按指定的比较器进行排序
- PriorityQueue(PriorityQueue<? extends E> c)
- PriorityQueue(SortedSet<? extends E> c)
- 常用方法
- boolean add(E e)
- void clear()
- boolean contains(Object o)
- Iterator iterator()
- boolean offer(E e)
- E peek()
- E poll()
- boolean remove(Object o)
- Object[] toArray()
- T[] toArray(T[] a)
- add() 和 offer()
- 都是添加元素
- add()插入失败时抛出异常
- offer()插入失败返回false
- element() 和 peek()
- 都是获取但删除队首元素
- 前者失败时抛出异常
- 后者失败时返回null
- remove() 和 poll()
- 都是获取并删除队首元素
- 前者失败时抛出异常
- 后者失败时返回null