Що таке Deque в Java?
Інтерфейс Deque у Java представляє двосторонню чергу, яка дозволяє додавати та видаляти елементи як з початку, так і з кінця. Це робить Deque універсальним інструментом для реалізації різних структур даних, таких як стек або черга.
Deque входить до складу пакета java.util і може бути реалізований через такі класи, як ArrayDeque або LinkedList. Це дає можливість вибору між продуктивністю та гнучкістю залежно від ваших потреб.
- Дозволяє додавати та видаляти елементи з обох кінців, що робить його універсальним для різних задач.
- Реалізує безліч методів для роботи з елементами, включаючи offerFirst, offerLast, pollFirst, pollLast, peekFirst, peekLast.
- Може використовуватись як стек (LIFO) або черга (FIFO).
import java.util.ArrayDeque;
import java.util.Deque;
public class DequeExample {
public static void main(String[] args) {
Deque<String> deque = new ArrayDeque<>();
// Додавання елементів на початок і кінець
deque.offerFirst("Перший");
deque.offerLast("Останній");
// Читання елементів без видалення
System.out.println("Перший елемент: " + deque.peekFirst());
System.out.println("Останній елемент: " + deque.peekLast());
// Видалення елементів з початку і кінця
System.out.println("Видалено з початку: " + deque.pollFirst());
System.out.println("Видалено з кінця: " + deque.pollLast());
// Перевірка на пустоту
if (deque.isEmpty()) {
System.out.println("Черга пуста.");
}
}
}
Deque забезпечує гнучкість завдяки універсальності своїх методів. Наприклад, використання методів offer та poll дозволяє уникнути винятків, якщо черга пуста або переповнена, а методи add та remove можуть викликати виняток у таких ситуаціях.
Для випадків, коли важлива продуктивність, рекомендується використовувати ArrayDeque, оскільки він реалізований на основі масиву і забезпечує швидші операції порівняно з LinkedList, особливо при роботі з великою кількістю елементів.