Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpCoDq 210 of 322 menu
◀ ▶

Дек с двух концов в Java

Интерфейс Deque расширяет очередь: можно работать и с головы, и с хвоста. На деке удобно строить стек, двустороннюю очередь или обход истории с кнопками «назад» и «вперед».

Частая реализация снова ArrayDeque: она быстрая, не требует отдельного класса для стека и подходит как замена устаревшему Stack.

Стек команд через дек: последняя команда уходит первой:

import java.util.ArrayDeque; import java.util.Deque; public class Main { public static void main(String[] args) { Deque<String> stack = new ArrayDeque<>(); stack.push("open"); stack.push("edit"); stack.push("save"); System.out.println(stack.pop()); System.out.println(stack.pop()); } }

Методы push и pop работают с началом дека как со стеком. Для явной работы с обоими концами есть offerFirst, offerLast, pollFirst и pollLast:

import java.util.ArrayDeque; import java.util.Deque; public class Main { public static void main(String[] args) { Deque<Integer> lane = new ArrayDeque<>(); lane.offerLast(1); lane.offerLast(2); lane.offerFirst(0); System.out.println(lane.pollFirst()); System.out.println(lane.pollLast()); } }

Даны команды:

var commands = List.of("a", "b", "c");

Снимите их со стека в порядке LIFO и выведите через пробел.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить