In deze tutorial zullen we leren over de Deque-interface, hoe deze te gebruiken en zijn methoden.
De Deque
interface van het Java-verzamelingsraamwerk biedt de functionaliteit van een dubbele wachtrij. Het breidt de Queue
interface uit.
Werking van Deque
In een gewone wachtrij worden elementen van achteren toegevoegd en van voren verwijderd. In een deque kunnen we echter elementen zowel van voren als van achteren plaatsen en verwijderen .
Klassen die Deque implementeren
Om de functionaliteiten van de Deque
interface te gebruiken, moeten we klassen gebruiken die het implementeren:
- ArrayDeque
- LinkedList
Hoe gebruikt u Deque?
In Java moeten we het java.util.Deque
pakket importeren om te gebruiken Deque
.
// Array implementation of Deque Deque animal1 = new ArrayDeque(); // LinkedList implementation of Deque Deque animal2 = new LinkedList();
Hier hebben we objecten animal1 en animal2 gemaakt van respectievelijk de klassen ArrayDeque en LinkedList. Deze objecten kunnen de functionaliteiten van de Deque
interface gebruiken.
Methoden van Deque
Omdat Deque
het de Queue
interface uitbreidt , neemt het alle methoden van de wachtrij-interface over.
Naast methoden die beschikbaar zijn in de Queue
interface, bevat de Deque
interface ook de volgende methoden:
- addFirst () - Voegt het opgegeven element toe aan het begin van de deque. Gooit een uitzondering als de kaart vol is.
- addLast () - Voegt het opgegeven element toe aan het einde van de deque. Gooit een uitzondering als de kaart vol is.
- offerFirst () - Voegt het opgegeven element toe aan het begin van de deque. Retourneert
false
als de kaart vol is. - offerLast () - Voegt het opgegeven element toe aan het einde van de deque. Retourneert
false
als de kaart vol is. - getFirst () - Retourneert het eerste element van de deque. Gooit een uitzondering als de kaart leeg is.
- getLast () - Retourneert het laatste element van de deque. Gooit een uitzondering als de kaart leeg is.
- peekFirst () - Retourneert het eerste element van de deque. Retourneert
null
als de kaart leeg is. - peekLast () - Retourneert het laatste element van de deque. Retourneert
null
als de kaart leeg is. - removeFirst () - Retourneert en verwijdert het eerste element van de deque. Gooit een uitzondering als de kaart leeg is.
- removeLast () - Retourneert en verwijdert het laatste element van de deque. Gooit een uitzondering als de kaart leeg is.
- pollFirst () - Retourneert en verwijdert het eerste element van de deque. Retourneert
null
als de kaart leeg is. - pollLast () - Retourneert en verwijdert het laatste element van de deque. Retourneert
null
als de kaart leeg is.
Deque als Stack-gegevensstructuur
De Stack
klasse van het Java- Collections
framework zorgt voor de implementatie van de stack.
Het wordt echter aanbevolen om Deque
als stapel te gebruiken in plaats van de klasse Stack. Het is omdat de methoden Stack
worden gesynchroniseerd.
Dit zijn de methoden die de Deque
interface biedt om stack te implementeren:
push()
- voegt een element toe aan het begin van dequepop()
- verwijdert een element uit het begin van dequepeek()
- geeft een element terug vanaf het begin van deque
Implementatie van Deque in 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); ) )
Uitvoer
Deque: (3, 1, 2) Eerste element: 3 Laatste element: 2 Verwijderd Eerste element: 3 Verwijderd Laatste element: 2 Bijgewerkt Deque: (1)
Bezoek Java ArrayDeque voor meer informatie.