У цьому підручнику ми дізнаємося про інтерфейс Deque, як ним користуватися та його методи.
Deque
Інтерфейс рамок колекцій Java забезпечує функціональність двоцокольні черг. Це розширює Queue
інтерфейс.
Робота Деке
У звичайній черзі елементи додаються ззаду і видаляються спереду. Однак, в деке, ми можемо вставляти і витягувати елементи як спереду, так і ззаду .
Класи, що реалізують Deque
Для того, щоб використовувати функціональні можливості Deque
інтерфейсу, нам потрібно використовувати класи, які його реалізують:
- ArrayDeque
- LinkedList
Як користуватися Deque?
У Java ми повинні імпортувати java.util.Deque
пакет для використання Deque
.
// Array implementation of Deque Deque animal1 = new ArrayDeque(); // LinkedList implementation of Deque Deque animal2 = new LinkedList();
Тут ми створили об’єкти animal1 та animal2 класів ArrayDeque та LinkedList, відповідно. Ці об'єкти можуть використовувати функціональні можливості Deque
інтерфейсу.
Методи Деке
Оскільки Deque
розширює Queue
інтерфейс, він успадковує всі методи інтерфейсу Черги.
Окрім методів, доступних в Queue
інтерфейсі, Deque
інтерфейс також включає такі методи:
- addFirst () - Додає вказаний елемент на початку deque. Видає виняток, якщо деке заповнене.
- addLast () - Додає вказаний елемент в кінці дека. Видає виняток, якщо деке заповнене.
- offerFirst () - Додає вказаний елемент на початку деку. Повертає,
false
якщо картка заповнена. - offerLast () - Додає зазначений елемент в кінці символу. Повертає,
false
якщо картка заповнена. - getFirst () - Повертає перший елемент deque. Видає виняток, якщо параметр порожній.
- getLast () - Повертає останній елемент deque. Видає виняток, якщо параметр порожній.
- peekFirst () - Повертає перший елемент деку. Повертає,
null
якщо деке порожнє. - peekLast () - Повертає останній елемент deque. Повертає,
null
якщо деке порожнє. - removeFirst () - Повертає та видаляє перший елемент deque. Видає виняток, якщо параметр порожній.
- removeLast () - Повертає та видаляє останній елемент deque. Видає виняток, якщо параметр порожній.
- pollFirst () - повертає та видаляє перший елемент деку. Повертає,
null
якщо деке порожнє. - pollLast () - повертає та видаляє останній елемент деке. Повертає,
null
якщо деке порожнє.
Створення структури даних стека
Stack
Клас Java Collections
основи забезпечує реалізацію стека.
Однак рекомендується використовувати Deque
як стек замість класу Stack. Це тому, що методи Stack
синхронізовані.
Ось методи, які Deque
надає інтерфейс для реалізації стека:
push()
- додає елемент на початку dequepop()
- видаляє елемент з початку dequepeek()
- повертає елемент з початку deque
Впровадження 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 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) Перший елемент: 3 Останній елемент: 2 Видалено Перший елемент: 3 Видалено Останній елемент: 2 Оновлено Deque: (1)
Щоб дізнатись більше, відвідайте Java ArrayDeque.