Интерфейс Java Deque
Интерфейс Java Deque
В этом руководстве мы узнаем об интерфейсе Deque, о том, как его использовать и о его методах.
Deque
интерфейс фреймворка коллекций Java обеспечивает функциональность двусторонней очереди. Он расширяет Queue
интерфейс.
Работа Deque
В обычной очереди элементы добавляются сзади и удаляются спереди. Однако в деке мы можем вставлять и удалять элементы как спереди, так и сзади. .
<час>
Классы, реализующие Deque
Чтобы использовать функциональные возможности Deque
интерфейс, нам нужно использовать классы, которые его реализуют:
- ArrayDeque
- Связанный список
<час>
Как использовать Deque?
В Java мы должны импортировать java.util.Deque
пакет для использования Deque
.
// Array implementation of Deque
Deque<String> animal1 = new ArrayDeque<>();
// LinkedList implementation of Deque
Deque<String> animal2 = new LinkedList<>();
Здесь мы создали объекты animal1 и животное2 классов ArrayDeque и Связанный список , соответственно. Эти объекты могут использовать функции Deque
интерфейс.
Методы Deque
Начиная с Deque
расширяет Queue
интерфейс, он наследует все методы интерфейса Queue.
Помимо методов, доступных в Queue
интерфейс, Deque
Интерфейс также включает следующие методы:
- добавитьFirst() - Добавляет указанный элемент в начало двухсторонней очереди. Выдает исключение, если двухсторонняя очередь заполнена.
- добавитьпоследнее() - Добавляет указанный элемент в конец очереди. Выдает исключение, если двухсторонняя очередь заполнена.
- предложениеFirst() - Добавляет указанный элемент в начало двухсторонней очереди. Возвращает
false
если очередь заполнена. - Последнее предложение() - Добавляет указанный элемент в конец очереди. Возвращает
false
если очередь заполнена. - getFirst() - Возвращает первый элемент очереди. Генерирует исключение, если двухсторонняя очередь пуста.
- получить последнее() - Возвращает последний элемент очереди. Генерирует исключение, если двухсторонняя очередь пуста.
- PeekFirst() - Возвращает первый элемент очереди. Возвращает
null
если очередь пуста. - PeekLast() - Возвращает последний элемент очереди. Возвращает
null
если очередь пуста. - удалитьFirst() - Возвращает и удаляет первый элемент очереди. Генерирует исключение, если двухсторонняя очередь пуста.
- удалить последний() - Возвращает и удаляет последний элемент очереди. Генерирует исключение, если двухсторонняя очередь пуста.
- опрос первого() - Возвращает и удаляет первый элемент очереди. Возвращает
null
если очередь пуста. - Последний опрос() - Возвращает и удаляет последний элемент очереди. Возвращает
null
если очередь пуста.
Запись в очередь как структура данных стека
Stack
класс Java Collections
framework обеспечивает реализацию стека.
Однако рекомендуется использовать Deque
как стек вместо класса Stack. Это потому, что методы Stack
синхронизированы.
Вот методы, которые Deque
интерфейс обеспечивает реализацию стека:
push()
- добавляет элемент в начало двухсторонней очередиpop()
- удаляет элемент из начала двухсторонней очередиpeek()
- возвращает элемент из начала двухсторонней очереди
Реализация Deque в классе ArrayDeque
import java.util.Deque;
import java.util.ArrayDeque;
class Main {
public static void main(String[] args) {
// Creating Deque using the ArrayDeque class
Deque<Integer> numbers = new ArrayDeque<>();
// add elements to the Deque
numbers.offer(1);
numbers.offerLast(2);
numbers.offerFirst(3);
System.out.println("Deque: " + numbers);
// Access elements of the Deque
int firstElement = numbers.peekFirst();
System.out.println("First Element: " + firstElement);
int lastElement = numbers.peekLast();
System.out.println("Last Element: " + lastElement);
// Remove elements from the Deque
int removedNumber1 = numbers.pollFirst();
System.out.println("Removed First Element: " + removedNumber1);
int removedNumber2 = numbers.pollLast();
System.out.println("Removed Last Element: " + removedNumber2);
System.out.println("Updated Deque: " + numbers);
}
}
Вывод
Deque: [3, 1, 2] First Element: 3 Last Element: 2 Removed First Element: 3 Removed Last Element: 2 Updated Deque: [1]
Чтобы узнать больше, посетите Java ArrayDeque.
java