Queue
Queue
Queue
注意:不要把 null 添加到队列中,否则 poll()方法返回 null 时,很难确定是取到了 null 元素还是队列为空。
PriorityQueue(优先队列) extends AbstractQueue
通过二叉小顶堆实现,可以用一棵完全二叉树表示
优先队列的作用是能保证每次取出的元素都是队列中权值最小的
PriorityQueue 实现了 Queue 接口,不允许放入 null 元素;其通过堆实现,具体说是通过完全二叉树 (complete binary tree) 实现的小顶堆(任意一个非叶子节点的权值,都不大于其左右子节点的权值),也就意味着可以通过数组来作为 PriorityQueue 的底层实现
放入 PriorityQueue 的元素,必须实现 Comparable 接口,PriorityQueue 会根据元素的排序顺序决定出队的优先级
Deque extends Queue
(接口)
队列和 Deque 方法的比较
队列方法 | 等效的 Deque 方法 |
---|---|
add(e) | addLast(e) |
offer(e) | offerLast(e) |
remove() | removeFirst() |
poll() | pollFirst() |
element() | getFirst() |
peek() | peekFirst() |
ArrayDeque implements Deque
(实现接口)
ArrayBlockingQueue
SynchronousQueue
PriorityBlockingQueue
DelayQueue
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 杨柳亭!