Java Deque

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 deque
  • pop() - odstraní prvek od začátku deque
  • peek() - 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.

Zajímavé články...