Deque
Двусторонняя очередь: добавлять и забирать можно с обоих концов.
Доступно с: Java 1.6
Синтаксис
public interface Deque<E> extends Queue<E>, SequencedCollection<E>Примеры
Операции с обоими концами:
void main() {
Deque<Integer> d = new ArrayDeque<>();
d.offerLast(2);
d.offerFirst(1);
d.offerLast(3);
IO.println(d);
IO.println(d.pollFirst() + " " + d.pollLast());
IO.println(d);
}Результат:
[1, 2, 3]
1 3
[2]Примечания
Одна и та же Deque служит и очередью (offer() + poll()), и стеком (push() + pop()). У каждой операции есть версии First и Last. Реализации: ArrayDeque (обычный выбор) и LinkedList.
См. также
- ArrayDeque — Быстрая двусторонняя очередь на массиве — замена `Stack` и `LinkedList`.
- Deque.push() — Кладёт элемент на вершину стека (в начало двусторонней очереди).
- Deque.pop() — Снимает и возвращает элемент с вершины стека.
- Queue — Очередь: элементы добавляются в конец и забираются из начала.
В учебнике
- Очереди и деки — Очереди в Java: Queue и ArrayDeque, стек на основе Deque, методы offer, poll и peek, очередь с приоритетом PriorityQueue.