I denne opplæringen vil vi lære om Deque-grensesnittet, hvordan du bruker det, og dets metoder.
Den Deque
grensesnittet til Java samlinger rammeverket gir funksjonaliteten til en dobbel-ended køen. Det utvider Queue
grensesnittet.
Arbeid av Deque
I en vanlig kø blir elementer lagt til bakfra og fjernet fra fronten. I en deque kan vi imidlertid sette inn og fjerne elementer både foran og bak .
Klasser som implementerer Deque
For å kunne bruke funksjonene til Deque
grensesnittet, må vi bruke klasser som implementerer det:
- ArrayDeque
- LinkedList
Hvordan bruker Deque?
I Java må vi importere java.util.Deque
pakken for å bruke Deque
.
// Array implementation of Deque Deque animal1 = new ArrayDeque(); // LinkedList implementation of Deque Deque animal2 = new LinkedList();
Her har vi laget objekter animal1 og animal2 i henholdsvis klassene ArrayDeque og LinkedList. Disse objektene kan bruke funksjonene til Deque
grensesnittet.
Metoder for Deque
Siden Deque
utvider Queue
grensesnittet, arver det alle metodene i køgrensesnittet.
Foruten metoder som er tilgjengelige i Queue
grensesnittet, inkluderer Deque
grensesnittet også følgende metoder:
- addFirst () - Legger til det angitte elementet i begynnelsen av dekningen. Kaster et unntak hvis deque er full.
- addLast () - Legger til det angitte elementet på slutten av deque. Kaster et unntak hvis deque er full.
- offerFirst () - Legger til det angitte elementet i begynnelsen av dekningen. Returnerer
false
hvis deque er full. - offerLast () - Legger til det angitte elementet på slutten av deque. Returnerer
false
hvis deque er full. - getFirst () - Returnerer det første elementet i deken. Kaster et unntak hvis deque er tom.
- getLast () - Returnerer det siste elementet i deken. Kaster et unntak hvis deque er tom.
- peekFirst () - Returnerer det første elementet i deken. Returnerer
null
hvis dekken er tom. - peekLast () - Returnerer det siste elementet i deque. Returnerer
null
hvis deque er tom. - removeFirst () - Returnerer og fjerner det første elementet i deken. Kaster et unntak hvis deque er tom.
- removeLast () - Returnerer og fjerner det siste elementet i dekken. Kaster et unntak hvis deque er tom.
- pollFirst () - Returnerer og fjerner det første elementet i deken. Returnerer
null
hvis dekken er tom. - pollLast () - Returnerer og fjerner det siste elementet i deken. Returnerer
null
hvis dekken er tom.
Dekke som stabeldatastruktur
Den Stack
klassen av Java Collections
rammeverk gir gjennomføringen av stabelen.
Det anbefales imidlertid å bruke Deque
som en stabel i stedet for Stack-klassen. Det er fordi metoder for Stack
er synkronisert.
Her er metodene Deque
grensesnittet gir for å implementere stack:
push()
- legger til et element i begynnelsen av dequepop()
- fjerner et element fra begynnelsen av dequepeek()
- returnerer et element fra begynnelsen av deque
Implementering av Deque i ArrayDeque Class
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); ) )
Produksjon
Deque: (3, 1, 2) Første element: 3 siste element: 2 fjernet første element: 3 fjernet siste element: 2 oppdatert Deque: (1)
For å lære mer, besøk Java ArrayDeque.