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

boolean

add(E

将指定的元素列表的结束。

void

add(int index, E

在列表中指定的位置上插入指定的元素。

boolean

addAll(Collection<? extends E> c)

追加指定集合的所有元素到这个列表的末尾,按他们的指定集合的迭代器返回。

boolean

addAll(int index, Collection<? extends E> c)

将指定集合中的所有元素插入到该列表中,从指定位置开始。

void

addFirst(E

在此列表的开始处插入指定的元素。

void

addLast(E

将指定的元素列表的结束。

void

clear()

从这个列表中移除所有的元素。

Object

clone()

返回该 LinkedList浅拷贝。

boolean

contains(Object

返回 true如果这个列表包含指定元素。

Iterator<E>

descendingIterator()

返回在反向顺序在deque容器元素的迭代器。

E

element()

检索,但不删除,此列表的头(第一个元素)。

E

get(int index)

返回此列表中指定位置的元素。

E

getFirst()

返回此列表中的第一个元素。

E

getLast()

返回此列表中的最后一个元素。

int

indexOf(Object

返回此列表中指定元素的第一个出现的索引,或-如果此列表不包含元素,或- 1。

int

lastIndexOf(Object

返回此列表中指定元素的最后一个发生的索引,或-如果此列表不包含元素,或- 1。

ListIterator<E>

listIterator(int index)

返回此列表中元素的列表迭代器(在适当的顺序),从列表中的指定位置开始。

boolean

offer(E

将指定的元素添加到列表的尾部(最后一个元素)。

boolean

offerFirst(E

在列表的前面插入指定的元素。

boolean

offerLast(E

在列表的结尾插入指定的元素。

E

peek()

检索,但不删除,此列表的头(第一个元素)。

E

peekFirst()

检索,但不删除该列表的第一个元素,或返回 null如果这个列表是空的。

E

peekLast()

检索,但不删除该列表的最后一个元素,或返回 null如果这个列表是空的。

E

poll()

检索并删除此列表的头(第一个元素)。

E

pollFirst()

检索并移除此列表的第一个元素,或返回 null如果这个列表是空的。

E

pollLast()

检索并移除此列表的最后一个元素,或返回 null如果这个列表是空的。

E

pop()

从这个列表所表示的堆栈中弹出一个元素。

void

push(E

将一个元素推到由该列表所表示的堆栈上。

E

remove()

检索并删除此列表的头(第一个元素)。

E

remove(int index)

移除此列表中指定位置的元素。

boolean

remove(Object

从该列表中移除指定元素的第一个发生,如果它是存在的。

E

removeFirst()

移除并返回此列表中的第一个元素。

boolean

removeFirstOccurrence(Object

删除此列表中指定元素的第一个出现(当遍历从头到尾的列表)。

E

removeLast()

移除并返回此列表中的最后一个元素。

boolean

removeLastOccurrence(Object

删除此列表中指定元素的最后一次(当遍历从头到尾的列表时)。

E

set(int index, E

用指定元素替换此列表中指定位置的元素。

int

size()

返回此列表中元素的数目。

Object[]

toArray()

返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一个到最后一个元素)。

<T> T[]

toArray(T[] a)

返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一到最后一个元素);返回数组的运行时类型是指定的数组的运行时类型。

  • ArrayDeque

boolean

add(E

在这个队列的末尾插入指定元素。

void

addFirst(E

在这个队列的前面插入指定元素。

void

addLast(E

在这个队列的末尾插入指定元素。

void

clear()

删除所有的从这个容器元素。

ArrayDeque<E>

clone()

返回一个复制该deque容器。

boolean

contains(Object

如果这两 true返回包含指定的元素。

Iterator<E>

descendingIterator()

返回在反向顺序在deque容器元素的迭代器。

E

element()

检索,但不删除,这代表的deque队列的头部。

E

getFirst()

检索,但不删除该deque容器的第一个元素。

E

getLast()

检索,但不删除该队列的最后一个元素。

boolean

isEmpty()

返回 true如果队列不包含元素。

Iterator<E>

iterator()

返回在deque容器元素的迭代器。

boolean

offer(E

在这个队列的末尾插入指定元素。

boolean

offerFirst(E

在这个队列的前面插入指定元素。

boolean

offerLast(E

在这个队列的末尾插入指定元素。

E

peek()

检索,但不删除,这代表的队列队列的头部,或返回 null如果队列是空的。

E

peekFirst()

检索,但不删除该deque容器的第一个元素,或返回 null如果队列是空的。

E

peekLast()

检索,但不删除该队列的最后一个元素,或返回 null如果队列是空的。

E

poll()

检索并移除该deque表示队列的头部(换句话说,这个容器的第一个元素),或返回 null如果队列是空的。

E

pollFirst()

检索并移除此队列的第一个元素,或返回 null如果队列是空的。

E

pollLast()

检索并移除此队列的最后一个元素,或返回 null如果队列是空的。

E

pop()

从这个弹出堆栈队列代表元素。

void

push(E

将一个元素到该deque表示堆栈。

E

remove()

检索并移除该deque队列的头代表。

boolean

remove(Object

从这个队列中移除指定元素的一个实例。

E

removeFirst()

检索并移除此队列的第一个元素。

boolean

removeFirstOccurrence(Object

删除在这个队列的第一个出现的指定元素(当遍历容器从头部到尾部)。

E

removeLast()

检索并移除此队列的最后一个元素。

boolean

removeLastOccurrence(Object

在deque容器移除指定元素的最后出现(当遍历容器从头部到尾部)。

int

size()

返回该容器元素的数量。

Object[]

toArray()

返回一个数组包含所有以正确的顺序在deque容器元素(从第一个到最后一个元素)。

<T> T[]

toArray(T[] a)

返回一个数组包含所有以正确的顺序在deque容器元素(从第一个到最后一个元素);返回数组的运行时类型为指定数组。

2、Queue单向队列

  • PriorityQueue

boolean

add(E

将指定的元素插入到该优先级队列中。

void

clear()

从这个优先级队列中移除所有的元素。

boolean

contains(Object

返回 true如果此队列包含指定的元素。

Iterator<E>

iterator()

返回此队列中元素的迭代器。

boolean

offer(E

将指定的元素插入到该优先级队列中。

E

peek()

检索,但不删除,这个队列头,或返回 null如果队列为空。

E

poll()

检索并移除此队列的头,或返回 null如果队列为空。

boolean

remove(Object

从该队列中移除指定元素的一个实例,如果它是存在的。

int

size()

返回此集合中的元素的数目。

Spliterator<E>

spliterator()

创建一个后期绑定和快速失败 Spliterator在队列中的元素。

Object[]

toArray()

返回一个包含此队列中所有元素的数组。

<T> T[]

toArray(T[] a)

返回包含此队列中的所有元素的数组;返回数组的运行时类型是指定的数组的运行时类型。