V tejto príručke sa dozvieme o rozhraní Deque, o tom, ako ho používať, a o jeho metódach.
Deque
Rozhranie zbierok rámca Java poskytuje funkcie double-ended fronty. Rozširuje Queue
rozhranie.
Pracovné Deque
V pravidelnom poradí sú prvky pridávané zozadu a odstránené spredu. V deque však môžeme vkladať a vyberať prvky spredu aj zozadu .
Triedy, ktoré implementujú Deque
Aby sme mohli využívať funkcie Deque
rozhrania, musíme použiť triedy, ktoré ho implementujú:
- ArrayDeque
- LinkedList
Ako používať Deque?
V prostredí Java musíme importovať java.util.Deque
balík, ktorý chcete použiť Deque
.
// Array implementation of Deque Deque animal1 = new ArrayDeque(); // LinkedList implementation of Deque Deque animal2 = new LinkedList();
Tu sme vytvorili objekty animal1 a animal2 z tried ArrayDeque a LinkedList. Tieto objekty môžu využívať funkcie Deque
rozhrania.
Metódy Deque
Pretože Deque
rozširuje Queue
rozhranie, dedí všetky metódy rozhrania frontu.
Okrem metód dostupných v Queue
rozhraní obsahuje Deque
rozhranie aj nasledujúce metódy:
- addFirst () - pridá zadaný prvok na začiatok deque. Ak je dekáda plná, hodí výnimku.
- addLast () - pridá zadaný prvok na koniec deque. Ak je dekáda plná, hodí výnimku.
- offerFirst () - pridá zadaný prvok na začiatok deque. Vráti sa,
false
ak je dekáda plná. - offerLast () - pridá zadaný prvok na koniec deque. Vráti sa,
false
ak je dekáda plná. - getFirst () - Vráti prvý prvok deque. Ak je deque prázdny, hodí výnimku.
- getLast () - Vráti posledný prvok deque. Ak je deque prázdny, hodí výnimku.
- peekFirst () - Vráti prvý prvok deque. Vráti sa,
null
ak je deque prázdny. - peekLast () - Vráti posledný prvok deque. Vráti sa,
null
ak je deque prázdny. - removeFirst () - Vráti a odstráni prvý prvok deque. Ak je deque prázdny, hodí výnimku.
- removeLast () - Vráti a odstráni posledný prvok deque. Ak je deque prázdny, hodí výnimku.
- pollFirst () - Vráti a odstráni prvý prvok deque. Vráti sa,
null
ak je deque prázdny. - pollLast () - Vráti a odstráni posledný prvok deque. Vráti sa,
null
ak je deque prázdny.
Deque ako štruktúra dát stohu
Stack
Trieda Java Collections
rámca poskytuje implementáciu stohu.
Odporúča sa však použiť Deque
ako zásobník namiesto triedy Stack. Je to preto, lebo metódy Stack
sú synchronizované.
Tu sú metódy, ktoré Deque
rozhranie poskytuje na implementáciu zásobníka:
push()
- pridá prvok na začiatok dequepop()
- odstráni prvok zo začiatku dequepeek()
- vráti prvok zo začiatku deque
Implementácia Deque v triede 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ýkon
Deque: (3, 1, 2) Prvý element: 3 Posledný element: 2 Odstránený Prvý element: 3 Odstránený posledný element: 2 Aktualizovaný Deque: (1)
Ak sa chcete dozvedieť viac, navštívte Java ArrayDeque.