I den här handledningen lär vi oss om Deque-gränssnittet, hur man använder det och dess metoder.
Det Deque
gränssnitt samlingar ramen för Java ger funktionaliteten hos en dubbel slutade kö. Det utökar Queue
gränssnittet.
Arbeta av Deque
I en vanlig kö läggs element till bakifrån och tas bort från framsidan. I en deque kan vi dock sätta in och ta bort element både fram och bak .
Klasser som implementerar Deque
För att kunna använda funktionerna i Deque
gränssnittet måste vi använda klasser som implementerar det:
- ArrayDeque
- Länkad lista
Hur använder jag Deque?
I Java måste vi importera java.util.Deque
paketet för att kunna använda Deque
.
// Array implementation of Deque Deque animal1 = new ArrayDeque(); // LinkedList implementation of Deque Deque animal2 = new LinkedList();
Här har vi skapat objekt animal1 respektive animal2 i klasserna ArrayDeque respektive LinkedList. Dessa objekt kan använda Deque
gränssnittets funktioner .
Metoder för Deque
Eftersom det Deque
utvidgar Queue
gränssnittet ärver det alla metoder i kögränssnittet.
Förutom tillgängliga metoder i Queue
gränssnittet Deque
innehåller gränssnittet även följande metoder:
- addFirst () - Lägger till det angivna elementet i början av deken. Kaster ett undantag om deken är full.
- addLast () - Lägger till det angivna elementet i slutet av deque. Kaster ett undantag om deken är full.
- offerFirst () - Lägger till det angivna elementet i början av deken. Returnerar
false
om deken är full. - offerLast () - Lägger till det angivna elementet i slutet av deque. Returnerar
false
om deken är full. - getFirst () - Returnerar det första elementet i deque. Kaster ett undantag om deken är tom.
- getLast () - Returnerar det sista elementet i deken. Kaster ett undantag om deken är tom.
- peekFirst () - Returnerar det första elementet i deque. Returnerar
null
om deken är tom. - peekLast () - Returnerar det sista elementet i deque. Returnerar
null
om deken är tom. - removeFirst () - Returnerar och tar bort det första elementet i deken. Kaster ett undantag om deken är tom.
- removeLast () - Returnerar och tar bort det sista elementet i deken. Kaster ett undantag om deken är tom.
- pollFirst () - Returnerar och tar bort det första elementet i deken. Returnerar
null
om deken är tom. - pollLast () - Returnerar och tar bort det sista elementet i deken. Returnerar
null
om deken är tom.
Deque som stapeldatastruktur
Den Stack
klass av Java Collections
ramverket ger genomförandet av stapeln.
Det rekommenderas dock att använda Deque
som en stack istället för Stack-klassen. Det beror på att metoder för Stack
är synkroniserade.
Här är metoderna som Deque
gränssnittet ger för att implementera stack:
push()
- lägger till ett element i början av dequepop()
- tar bort ett element från början av dequepeek()
- returnerar ett element från början av deque
Implementering av Deque i ArrayDeque-klass
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); ) )
Produktion
Deque: (3, 1, 2) Första element: 3 sista element: 2 borttaget första element: 3 borttaget sista element: 2 uppdaterat deque: (1)
För att lära dig mer, besök Java ArrayDeque.