English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом руководстве мы будем изучать интерфейс Deque, как использовать его и его методы.
Интерфейс Deque в Java Collection Framework предоставляет функции двусторонней очереди (Deque). Он наследует интерфейс Queue.
В обычной очереди элементы добавляются сзади, а удаляются спереди. Однако, в двусторонней очереди мы можемВставка и удаление элементов с двух сторон.
Чтобы использовать функции интерфейса Deque, нам нужно использовать классы, реализующие этот интерфейс:
В Java我们必须 импортировать пакет java.util.Deque, который我们要 использовать.
Deque<String> animal1 = new ArrayDeque<>(); Deque<String> animal2 = new LinkedList<>();
Здесь мы создаем объекты класса ArrayDeque и LinkedList animal1 и animal2. Эти объекты могут использовать функции интерфейса Deque.
Поскольку Deque наследует интерфейс Queue, он наследуетинтерфейса QueueВсе методы.
Кроме методов, доступных в интерфейсе Queue, интерфейс Deque включает в себя следующие методы:
addFirst() - Добавление указанного элемента в начало двусторонней очереди. Если двусторонняя очередь полна, вызывается исключение.
addLast() - Добавление указанного элемента в конец двусторонней очереди. Если двусторонняя очередь полна, вызывается исключение.
offerFirst() - Добавление указанного элемента в начало двусторонней очереди. Если двусторонняя очередь полна, возвращается false.
offerLast() - Добавление указанного элемента в конец двусторонней очереди. Если двусторонняя очередь полна, возвращается false.
getFirst() - Возврат первого элемента из двусторонней очереди. Если двусторонняя очередь пуста, вызывается исключение.
getLast() - возвращает последний элемент двусторонней очереди. Если двусторонняя очередь пуста, то引发 исключение.
peekFirst() - возвращает первый элемент двусторонней очереди. Если двусторонняя очередь пуста, то возвращает null.
peekLast() - возвращает последний элемент двусторонней очереди. Если двусторонняя очередь пуста, то возвращает null.
removeFirst() - возвращает и удаляет первый элемент двусторонней очереди. Если двусторонняя очередь пуста, то引发 исключение.
removeLast() - возвращает и удаляет последний элемент двусторонней очереди. Если двусторонняя очередь пуста, то引发 исключение.
pollFirst() - возвращает и удаляет первый элемент двусторонней очереди. Если двусторонняя очередь пуста, то возвращает null.
pollLast() - возвращает и удаляет последний элемент двусторонней очереди. Если двусторонняя очередь пуста, то возвращает null.
Класс Stack в Java Collections Framework предоставляет реализацию стека.
Но рекомендуется использовать Deque в качестве стека вместоКласс Stack. Это потому, что методы Stack синхронизированы.
Вот методы, предоставляемые интерфейсом Deque для реализации стека:
push() - добавляет элемент в начало двусторонней очереди
pop() - удаляет элемент с начала двусторонней очереди
peek() - возвращает элемент с начала двусторонней очереди
import java.util.Deque; import java.util.ArrayDeque; class Main { public static void main(String[] args) { //создание Deque с помощью класса ArrayDeque Deque<Integer> numbers = new ArrayDeque<>(); //добавление элементов в Deque numbers.offer(1); numbers.offerLast(2); numbers.offerFirst(3); System.out.println("Deque: " + numbers); //доступ к элементам Deque int firstElement = numbers.peekFirst(); System.out.println("первый элемент: " + firstElement); int lastElement = numbers.peekLast(); System.out.println("Последний элемент: " + lastElement); //Удалить элемент из Deque int removedNumber1 = numbers.pollFirst(); System.out.println("Удалить первый элемент: " + removedNumber1); int removedNumber2 = numbers.pollLast(); System.out.println("Удалить последний элемент: " + removedNumber2); System.out.println("Обновленный Deque: " + numbers); } }
Результат вывода
Deque: [3, 1, 2] Первый элемент: 3 Последний элемент: 2 Удалить первый элемент: 3 Удалить последний элемент: 2 Обновленный Deque: [1]
Чтобы узнать больше информации, пожалуйста, посетитеArrayDeque Java.