W tym samouczku nauczymy się o interfejsie Deque, jak go używać i jego metodach.
Deque
Interfejs zbiorach ramach Java zapewnia funkcjonalność kolejka dwukierunkowa. Rozszerza Queue
interfejs.
Działanie Deque
W regularnej kolejce elementy są dodawane od tyłu i usuwane z przodu. Jednak w deque możemy wstawiać i usuwać elementy zarówno z przodu, jak iz tyłu .
Klasy implementujące Deque
Aby skorzystać z funkcjonalności Deque
interfejsu, musimy skorzystać z klas, które go implementują:
- ArrayDeque
- Połączona lista
Jak używać Deque?
W Javie musimy zaimportować java.util.Deque
pakiet do użycia Deque
.
// Array implementation of Deque Deque animal1 = new ArrayDeque(); // LinkedList implementation of Deque Deque animal2 = new LinkedList();
Tutaj stworzyliśmy obiekty animal1 i animal2 z klas ArrayDeque i LinkedList. Obiekty te mogą korzystać z funkcjonalności Deque
interfejsu.
Metody Deque
Ponieważ Deque
rozszerza Queue
interfejs, dziedziczy on wszystkie metody interfejsu Queue.
Oprócz metod dostępnych w Queue
interfejsie, Deque
interfejs zawiera również następujące metody:
- addFirst () - dodaje określony element na początku deque. Zgłasza wyjątek, jeśli deque jest pełny.
- addLast () - dodaje określony element na końcu deque. Zgłasza wyjątek, jeśli deque jest pełny.
- offerFirst () - dodaje określony element na początku deque. Zwraca,
false
jeśli deque jest pełny. - offerLast () - dodaje określony element na końcu deque. Zwraca,
false
jeśli deque jest pełny. - getFirst () - zwraca pierwszy element deque. Zgłasza wyjątek, jeśli deque jest pusty.
- getLast () - zwraca ostatni element deque. Zgłasza wyjątek, jeśli deque jest pusty.
- peekFirst () - zwraca pierwszy element deque. Zwraca,
null
jeśli deque jest pusty. - peekLast () - zwraca ostatni element deque. Zwraca,
null
jeśli deque jest pusty. - removeFirst () - zwraca i usuwa pierwszy element deque. Zgłasza wyjątek, jeśli deque jest pusty.
- removeLast () - zwraca i usuwa ostatni element deque. Zgłasza wyjątek, jeśli deque jest pusty.
- pollFirst () - zwraca i usuwa pierwszy element deque. Zwraca,
null
jeśli deque jest pusty. - pollLast () - zwraca i usuwa ostatni element deque. Zwraca,
null
jeśli deque jest pusty.
Deque as Stack Data Structure
Stack
Klasa Java Collections
ram zapewnia realizację stosie.
Jednak zaleca się używanie Deque
jako stosu zamiast klasy Stack. Dzieje się tak, ponieważ metody Stack
są zsynchronizowane.
Oto metody Deque
implementacji stosu, które zapewnia interfejs:
push()
- dodaje element na początku dequepop()
- usuwa element z początku dequepeek()
- zwraca element z początku deque
Implementacja Deque w klasie 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); ) )
Wynik
Deque: (3, 1, 2) Pierwszy element: 3 Ostatni element: 2 Usunięty pierwszy element: 3 Usunięty Ostatni element: 2 Zaktualizowany Deque: (1)
Aby dowiedzieć się więcej, odwiedź witrynę Java ArrayDeque.