I denne vejledning lærer vi om Deque-grænsefladen, hvordan man bruger den og dens metoder.
Den Deque
grænsefladen af Java kollektioner rammer giver funktionaliteten af en dobbelt-ended kø. Det udvider Queue
grænsefladen.
Arbejde af Deque
I en almindelig kø tilføjes elementer bagfra og fjernes forfra. I en deque kan vi dog indsætte og fjerne elementer både foran og bagpå .
Klasser, der implementerer Deque
For at bruge funktionerne i Deque
grænsefladen skal vi bruge klasser, der implementerer det:
- ArrayDeque
- LinkedList
Hvordan bruges Deque?
I Java skal vi importere java.util.Deque
pakken, der skal bruges Deque
.
// Array implementation of Deque Deque animal1 = new ArrayDeque(); // LinkedList implementation of Deque Deque animal2 = new LinkedList();
Her har vi oprettet objekter animal1 og animal2 i henholdsvis klasser ArrayDeque og LinkedList. Disse objekter kan bruge funktionerne i Deque
grænsefladen.
Metoder til Deque
Da Deque
udvider Queue
grænsefladen, arver den alle metoderne i køgrænsefladen.
Udover metoder, der er tilgængelige i Queue
grænsefladen, Deque
inkluderer grænsefladen også følgende metoder:
- addFirst () - Tilføjer det angivne element i begyndelsen af deque. Kaster en undtagelse, hvis deque er fuld.
- addLast () - Tilføjer det angivne element i slutningen af deque. Kaster en undtagelse, hvis deque er fuld.
- offerFirst () - Tilføjer det angivne element i begyndelsen af deque. Returnerer,
false
hvis deque er fuld. - offerLast () - Tilføjer det angivne element i slutningen af deque. Returnerer,
false
hvis deque er fuld. - getFirst () - Returnerer det første element i deque. Kaster en undtagelse, hvis deque er tom.
- getLast () - Returnerer det sidste element i deque. Kaster en undtagelse, hvis deque er tom.
- peekFirst () - Returnerer det første element i deque. Returnerer,
null
hvis deque er tom. - peekLast () - Returnerer det sidste element i deque. Returnerer,
null
hvis deque er tom. - removeFirst () - Returnerer og fjerner det første element i deken. Kaster en undtagelse, hvis deque er tom.
- removeLast () - Returnerer og fjerner det sidste element i deken. Kaster en undtagelse, hvis deque er tom.
- pollFirst () - Returnerer og fjerner det første element i deken. Returnerer,
null
hvis deque er tom. - pollLast () - Returnerer og fjerner det sidste element i deque. Returnerer,
null
hvis deque er tom.
Deque som stack-datastruktur
Den Stack
klasse af Java Collections
rammer giver gennemførelsen af stakken.
Det anbefales dog at bruge Deque
som en stak i stedet for stakklassen. Det er fordi metoder til Stack
er synkroniseret.
Her er de metoder, Deque
interface giver til at implementere stack:
push()
- tilføjer et element i begyndelsen af dequepop()
- fjerner et element fra begyndelsen af dequepeek()
- returnerer et element fra begyndelsen af deque
Implementering af Deque i ArrayDeque-klasse
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ørste element: 3 sidste element: 2 fjernet første element: 3 fjernet sidste element: 2 opdateret Deque: (1)
For at lære mere, besøg Java ArrayDeque.