В този урок ще научим за интерфейса 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.