V tomto kurzu se dozvíme o rozhraní Deque, jak jej používat a jeho metodách.
DequeRozhraní sbírek rámce Java poskytuje funkce double-ended fronty. Rozšiřuje Queuerozhraní.
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 Dequerozhraní, musíme použít třídy, které jej implementují:
- ArrayDeque
- Spojový seznam

Jak používat Deque?
V Javě musíme java.util.Dequebalíč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 Dequerozhraní.
Metody Deque
Vzhledem k tomu, Dequerozšiřuje Queuerozhraní, dědí všechny metody rozhraní fronty.
Kromě metod dostupných v Queuerozhraní, Dequerozhraní 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,
falsepokud je deque plný. - offerLast () - Přidá zadaný prvek na konec deque. Vrátí se,
falsepokud 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,
nullpokud je deque prázdný. - peekLast () - Vrátí poslední prvek deque. Vrátí se,
nullpokud 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,
nullpokud je deque prázdný. - pollLast () - Vrátí a odebere poslední prvek deque. Vrátí se,
nullpokud je deque prázdný.
Deque jako Stack Data Structure
StackTřída Java Collectionsrámce poskytuje implementaci stohu.
Doporučuje se však použít Dequejako zásobník místo třídy Stack. Je to proto, že metody Stackjsou synchronizovány.
Zde jsou metody, které Dequerozhraní 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.








