双端队列
双端队列(deque,全名double-ended queue)是一种具有队列和栈性质的抽象数据类型。双端队列中的元素可以从两端弹出,插入和删除操作限定在队列的两边进行。
头操作 offer 尾操作 poll 查看操作 peek
定义
支持在两端插入和删除元素的队列,简称Deque(发音 deck)。
性质
- 操作灵活:
addFirst()、addLast()、removeFirst()、removeLast()。 - 可模拟栈(LIFO)和队列(FIFO)。
- 实现方式:数组(如
ArrayDeque)或链表(如LinkedList)。
实例
import java.util.Deque;
import java.util.ArrayDeque;
Deque<Integer> deque = new ArrayDeque<>();
deque.addFirst(1); // 队头插入:[1]
deque.addLast(2); // 队尾插入:[1, 2]
int first = deque.removeFirst(); // 移除队头:1
int last = deque.removeLast(); // 移除队尾:2