Queue以及Deque都是继承于Collection,Deque是Queue的子接口。
Queue是FIFO的单向队列,Deque是双向队列。
Queue有一个直接子类PriorityQueue,而Deque中直接子类有两个:LinkedList以及ArrayDeque。
PriorityQueue的底层数据结构是数组,而无边界的形容,那么指明了PriorityQueue是自带扩容机制的。
ArrayDeque是无初始容量的双端队列,LinkedList则是双向链表。
PriorityQueue可以作为堆使用,而且可以根据传入的Comparator实现大小的调整,会是一个很好的选择。
ArrayDeque通常作为栈或队列使用,但是栈的效率不如LinkedList高。
LinkedList通常作为栈或队列使用,但是队列的效率不如ArrayQueue高。
1、Deque双向队列
- LinkedList
Modifier and Type | Method and Description |
|
将指定的元素列表的结束。 |
|
在列表中指定的位置上插入指定的元素。 |
|
追加指定集合的所有元素到这个列表的末尾,按他们的指定集合的迭代器返回。 |
|
将指定集合中的所有元素插入到该列表中,从指定位置开始。 |
|
在此列表的开始处插入指定的元素。 |
|
将指定的元素列表的结束。 |
|
从这个列表中移除所有的元素。 |
|
返回该 |
|
返回 |
|
返回在反向顺序在deque容器元素的迭代器。 |
|
检索,但不删除,此列表的头(第一个元素)。 |
|
返回此列表中指定位置的元素。 |
|
返回此列表中的第一个元素。 |
|
返回此列表中的最后一个元素。 |
|
返回此列表中指定元素的第一个出现的索引,或-如果此列表不包含元素,或- 1。 |
|
返回此列表中指定元素的最后一个发生的索引,或-如果此列表不包含元素,或- 1。 |
|
返回此列表中元素的列表迭代器(在适当的顺序),从列表中的指定位置开始。 |
|
将指定的元素添加到列表的尾部(最后一个元素)。 |
|
在列表的前面插入指定的元素。 |
|
在列表的结尾插入指定的元素。 |
|
检索,但不删除,此列表的头(第一个元素)。 |
|
检索,但不删除该列表的第一个元素,或返回 |
|
检索,但不删除该列表的最后一个元素,或返回 |
|
检索并删除此列表的头(第一个元素)。 |
|
检索并移除此列表的第一个元素,或返回 |
|
检索并移除此列表的最后一个元素,或返回 |
|
从这个列表所表示的堆栈中弹出一个元素。 |
|
将一个元素推到由该列表所表示的堆栈上。 |
|
检索并删除此列表的头(第一个元素)。 |
|
移除此列表中指定位置的元素。 |
|
从该列表中移除指定元素的第一个发生,如果它是存在的。 |
|
移除并返回此列表中的第一个元素。 |
|
删除此列表中指定元素的第一个出现(当遍历从头到尾的列表)。 |
|
移除并返回此列表中的最后一个元素。 |
|
删除此列表中指定元素的最后一次(当遍历从头到尾的列表时)。 |
|
用指定元素替换此列表中指定位置的元素。 |
|
返回此列表中元素的数目。 |
|
返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一个到最后一个元素)。 |
|
返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一到最后一个元素);返回数组的运行时类型是指定的数组的运行时类型。 |
- ArrayDeque
|
在这个队列的末尾插入指定元素。 |
|
在这个队列的前面插入指定元素。 |
|
在这个队列的末尾插入指定元素。 |
|
删除所有的从这个容器元素。 |
|
返回一个复制该deque容器。 |
|
如果这两 |
|
返回在反向顺序在deque容器元素的迭代器。 |
|
检索,但不删除,这代表的deque队列的头部。 |
|
检索,但不删除该deque容器的第一个元素。 |
|
检索,但不删除该队列的最后一个元素。 |
|
返回 |
|
返回在deque容器元素的迭代器。 |
|
在这个队列的末尾插入指定元素。 |
|
在这个队列的前面插入指定元素。 |
|
在这个队列的末尾插入指定元素。 |
|
检索,但不删除,这代表的队列队列的头部,或返回 |
|
检索,但不删除该deque容器的第一个元素,或返回 |
|
检索,但不删除该队列的最后一个元素,或返回 |
|
检索并移除该deque表示队列的头部(换句话说,这个容器的第一个元素),或返回 |
|
检索并移除此队列的第一个元素,或返回 |
|
检索并移除此队列的最后一个元素,或返回 |
|
从这个弹出堆栈队列代表元素。 |
|
将一个元素到该deque表示堆栈。 |
|
检索并移除该deque队列的头代表。 |
|
从这个队列中移除指定元素的一个实例。 |
|
检索并移除此队列的第一个元素。 |
|
删除在这个队列的第一个出现的指定元素(当遍历容器从头部到尾部)。 |
|
检索并移除此队列的最后一个元素。 |
|
在deque容器移除指定元素的最后出现(当遍历容器从头部到尾部)。 |
|
返回该容器元素的数量。 |
|
返回一个数组包含所有以正确的顺序在deque容器元素(从第一个到最后一个元素)。 |
|
返回一个数组包含所有以正确的顺序在deque容器元素(从第一个到最后一个元素);返回数组的运行时类型为指定数组。 |
2、Queue单向队列
- PriorityQueue
|
将指定的元素插入到该优先级队列中。 |
|
从这个优先级队列中移除所有的元素。 |
|
返回 |
|
返回此队列中元素的迭代器。 |
|
将指定的元素插入到该优先级队列中。 |
|
检索,但不删除,这个队列头,或返回 |
|
检索并移除此队列的头,或返回 |
|
从该队列中移除指定元素的一个实例,如果它是存在的。 |
|
返回此集合中的元素的数目。 |
|
创建一个后期绑定和快速失败 Spliterator在队列中的元素。 |
|
返回一个包含此队列中所有元素的数组。 |
|
返回包含此队列中的所有元素的数组;返回数组的运行时类型是指定的数组的运行时类型。 |