V tomto kurzu se dozvíme o rozhraní Deque, jak jej používat a jeho metodách.
Deque
Rozhraní sbírek rámce Java poskytuje funkce double-ended fronty. Rozšiřuje Queue
rozhraní.
Práce Deque
V běžné frontě jsou prvky přidávány zezadu a odstraňovány zepředu. V deque však můžeme vkládat a odebírat prvky zepředu i zezadu .
Třídy, které implementují Deque
Aby bylo možné používat funkce Deque
rozhraní, musíme použít třídy, které jej implementují:
- ArrayDeque
- Spojový seznam
Jak používat Deque?
V Javě musíme java.util.Deque
balíček použít k použití Deque
.
// Array implementation of Deque Deque animal1 = new ArrayDeque(); // LinkedList implementation of Deque Deque animal2 = new LinkedList();
Zde jsme vytvořili objekty animal1 a animal2 tříd ArrayDeque a LinkedList. Tyto objekty mohou využívat funkce Deque
rozhraní.
Metody Deque
Vzhledem k tomu, Deque
rozšiřuje Queue
rozhraní, dědí všechny metody rozhraní fronty.
Kromě metod dostupných v Queue
rozhraní, Deque
rozhraní také zahrnuje následující metody:
- addFirst () - Přidá zadaný prvek na začátek deque. Vyvolá výjimku, pokud je deque plný.
- addLast () - Přidá zadaný prvek na konec deque. Vyvolá výjimku, pokud je deque plný.
- offerFirst () - Přidá zadaný prvek na začátek deque. Vrátí se,
false
pokud je deque plný. - offerLast () - Přidá zadaný prvek na konec deque. Vrátí se,
false
pokud je deque plný. - getFirst () - Vrátí první prvek deque. Vyvolá výjimku, pokud je deque prázdný.
- getLast () - Vrátí poslední prvek deque. Vyvolá výjimku, pokud je deque prázdný.
- peekFirst () - Vrátí první prvek deque. Vrátí se,
null
pokud je deque prázdný. - peekLast () - Vrátí poslední prvek deque. Vrátí se,
null
pokud je deque prázdný. - removeFirst () - Vrátí a odstraní první prvek deque. Vyvolá výjimku, pokud je deque prázdný.
- removeLast () - Vrátí a odebere poslední prvek deque. Vyvolá výjimku, pokud je deque prázdný.
- pollFirst () - Vrátí a odebere první prvek deque. Vrátí se,
null
pokud je deque prázdný. - pollLast () - Vrátí a odebere poslední prvek deque. Vrátí se,
null
pokud je deque prázdný.
Deque jako Stack Data Structure
Stack
Třída Java Collections
rámce poskytuje implementaci stohu.
Doporučuje se však použít Deque
jako zásobník místo třídy Stack. Je to proto, že metody Stack
jsou synchronizovány.
Zde jsou metody, které Deque
rozhraní poskytuje k implementaci zásobníku:
push()
- přidá prvek na začátek dequepop()
- odstraní prvek od začátku dequepeek()
- vrátí prvek od začátku deque
Implementace Deque ve třídě 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); ) )
Výstup
Deque: (3, 1, 2) První prvek: 3 Poslední prvek: 2 Odstraněno První prvek: 3 Odstraněno Poslední prvek: 2 Aktualizováno Deque: (1)
Další informace najdete na Java ArrayDeque.