Java Deque接口 使用方法(栈、队列、双端队列)
Java Deque接口 使用方法(栈、队列、双端队列)
目录
Deque接口可以实现 栈、队列、双端队列 的功能,虽然功能很丰富,但是使用时一定要格外小心。
接口的实现类
实现了这个接口的类有两个:ArrayDeque
、LinkedList
。ArrayDeque
不支持 null
,出现null
将会抛出异常
例如:@throws NullPointerException if the specified element is null and this deque does not permit null elements
使用情景:
频繁的插入、删除操作 或 未知的初始数量:LinkedList
频繁的随机访问操作:ArrayDeque
各功能的方法
双端队列
-
addFirst(E):void
在队头添加元素。 -
addLast(E):void
在队尾添加元素。 -
offerFirst(E):boolean
在队头添加元素,并返回是否添加成功。 -
offerLast(E):boolean
在队尾添加元素,并返回是否添加成功。 -
removeFirst():E
删除队头元素,并返回删除的元素,如果队列为null
,抛出异常。 -
removeLast():E
删除队尾元素,并返回删除的元素,如果队列为null
,抛出异常。 -
pollFirst():E
删除队头元素,并返回删除的元素,如果队列为null
,返回null
。 -
pollLast():E
删除队尾元素,并返回删除的元素,如果队列为null
,返回null
。 -
getFirst():E
获取队头元素,如果队列为null
将抛出异常。 -
getLast():E
获取队尾元素,如果队列为null
将抛出异常。 -
peekFirst():E
获取队头元素,如果队列为null
将返回null
。 -
peekLast():E
获取队尾元素,如果队列为null
将返回null
。 -
removeFirstOccurrence(Object):boolean
删除第一次出现的指定元素,并返回是否删除成功。 -
removeFirstOccurrence(Object):boolean
删除最后一次出现的指定元素,并返回是否删除成功。
队列(先进先出)
-
add(E):boolean
在队尾添加元素,添加成功返回true
,如果队列已满无法添加则抛出异常。 -
offer(E):boolean
在队尾添加元素,添加成功返回true
,如果队列已满无法添加则返回false
。 -
remove():E
删除队头元素,并返回删除的元素,如果队列为null
,抛出异常。 -
poll():E
删除队头元素,并返回删除的元素,如果队列为null
,返回null
。 -
element():E
获取队头元素,如果队列为null
将抛出异常。 -
peek():E
获取队头元素,如果队列为null
将返回null
。
栈(后进先出)
-
peek():E
获取队头元素,如果队列为null
将返回null
。 -
push(E):void
栈顶添加一个元素。 -
pop():E
移除栈顶元素,返回移除的元素,如果栈没有元素抛出异常。
其他
-
remove(Object):boolean
删除队列中所有指定元素,删除一个及以上返回true
,否则返回false
。 -
contains(Object):boolean
查看队列中是否存在指定元素,存在一个及以上返回true
,否则返回false
。 -
size():int
返回队列中元素的个数。 -
iterator():Iterator<E>
迭代器,从前向后迭代(order from first (head) to last (tail)
)。 -
descendingIterator():Iterator<E>
迭代器,从后向前迭代(order from last (tail) to first (head)
)。