В този урок ще научим за интерфейса Deque, как да го използваме и неговите методи.
В Dequeинтерфейса на колекции рамките на Java осигурява функционалността на опашка двоен накрайник. Той разширява Queueинтерфейса.
Работа на Deque
В обикновена опашка елементи се добавят отзад и се отстраняват отпред. Въпреки това, в deque, можем да вмъкваме и премахваме елементи отпред и отзад .

Класове, които прилагат 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
Тъй като Dequeразширява Queueинтерфейса, той наследява всички методи на интерфейса на опашката.
Освен наличните в Queueинтерфейса методи , Dequeинтерфейсът включва и следните методи:
- addFirst () - Добавя посочения елемент в началото на deque. Изхвърля изключение, ако deque е пълен.
- addLast () - Добавя посочения елемент в края на deque. Изхвърля изключение, ако deque е пълен.
- offerFirst () - Добавя посочения елемент в началото на deque. Връща,
falseако deque е пълен. - offerLast () - Добавя посочения елемент в края на deque. Връща,
falseако deque е пълен. - getFirst () - Връща първия елемент на deque. Изхвърля изключение, ако deque е празен.
- getLast () - Връща последния елемент на deque. Изхвърля изключение, ако deque е празен.
- peekFirst () - Връща първия елемент на deque. Връща,
nullако deque е празен. - peekLast () - Връща последния елемент на deque. Връща,
nullако deque е празен. - removeFirst () - Връща и премахва първия елемент на deque. Изхвърля изключение, ако deque е празен.
- removeLast () - Връща и премахва последния елемент на deque. Изхвърля изключение, ако deque е празен.
- pollFirst () - Връща и премахва първия елемент на deque. Връща,
nullако deque е празен. - pollLast () - Връща и премахва последния елемент на deque. Връща,
nullако deque е празен.
Deque като структура на данните за стека
В 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.








