Java Deque

2025 年 4 月 1 日 | 阅读 4 分钟

Deque 是一种线性集合,支持在两端插入和删除元素。 'Deque' 这个名字是双端队列(double-ended queue)的缩写。

Deque 对它们可能包含的元素数量没有固定限制。但是,此接口支持容量受限的 Deque 以及没有固定大小限制的 Deque。提供了各种方法来插入、删除和检查元素。

这些方法通常有两种形式:一种是在操作失败时抛出异常,另一种是返回一个特殊值,该值取决于操作,可以是 null 或 false。

方法

java.util.Deque 接口提供了在 Java 中执行双端队列操作的方法。其实现类是 java.util.ArrayDeque。

方法描述
add(E e)此方法用于将指定的元素插入到由 deque 表示的队列中
addAll(Collection<? Extends E>c)将指定集合中的所有元素添加到 deque 的末尾。
addFirst(E e)将指定元素插入到 deque 的开头。
addLast(E e)将指定元素插入到 deque 的末尾。
contains(object o)如果 deque 包含指定的元素,则返回 true。
descendingIterator()返回一个反向顺序的 deque 元素的迭代器。
element()检索由 deque 表示的队列的头部。
getFirst()检索 deque 的第一个元素,但不删除它。
getLast()检索 deque 的最后一个元素,但不删除它。
iterator()返回一个按正确顺序排列的 deque 元素的迭代器。
offer(E e)将指定元素插入到 deque 中,成功时返回 true,如果可用空间不足则返回 false。
offerFirst()将指定元素插入到 deque 的开头,除非这会违反容量限制。
offerLast()将指定元素插入到 deque 的末尾,除非这会违反容量限制。
peek()检索由 deque 表示的队列的头部,但不移除它,如果 deque 为空则可能返回 null。
peekFirst()检索 deque 的第一个元素,但不移除它,如果 deque 为空则可能返回 null。
peekLast()检索 deque 的最后一个元素,但不移除它,如果 deque 为空则可能返回 null。
poll()检索并移除由 deque 表示的队列的头部,如果 deque 为空则可能返回 null。
pollFirst()检索并移除 deque 的第一个元素,如果 deque 为空则可能返回 null。
pollLast()检索并移除 deque 的最后一个元素,如果 deque 为空则可能返回 null。
pop()从由 deque 表示的堆栈中弹出一个元素。
push()将一个元素推入由 deque 表示的堆栈。
remove()检索并移除由 deque 表示的队列的头部。
remove(Object o)从此 deque 中移除指定元素的第一次出现。
removeFirst()检索并移除 deque 的第一个元素。
removeFirstOccurrence(Object o)从此 deque 中移除指定元素的第一次出现。
removeLast()检索并移除 deque 的最后一个元素。
removeLastOccurrence(Object o)从此 deque 中移除指定元素的最后一次出现。
size()返回 deque 中的总元素数量。

示例 1

示例

编译并运行

输出

Inserting three elements : 
1
2
3
After popping : 
2
3
Removing the element 3 :[2]

示例 2

示例

编译并运行

输出

The first element is : [Java]
After adding the next element in the front of the deque : [Python, Java]
The final deque is  : [Python, Java, Ruby]
The number of elements are : 3
Deque after removing the last element is given as :  [Python, Java]