English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neue Eigenschaften
In diesem Tutorial werden wir mit Beispielen lernen, wie die Klasse ArrayDeque und ihre Methoden funktionieren. Außerdem werden wir lernen, wie man mit ArrayDeque Stacks realisiert.
Von ArrayDeque implementierte Interfaces
Erstellen Sie ArrayDeque
Um eine ArrayDeque-Doppelend-Kqueue zu erstellen, müssen wir das Paket java.util.ArrayDeque importieren.
Dies sind die Methoden, mit denen wir in Java ArrayDeque-Doppelend-Kqueues erstellen können:
ArrayDeque<Type> animal = new ArrayDeque<>();
//Hier stellt Type die Typen der ArrayDeque-Doppelend-Kqueue dar. Zum Beispiel, Erstellen Sie eine ArrayDeque für String-Typen //ArrayDeque<String> animals = new ArrayDeque<>(); Erstellen Sie eine ArrayDeque für Integer-Typen
ArrayDeque-Methode
1Fügen Sie den Element in die Doppelend-Kqueue ein
.Verwenden Sie add(), addFirst() und addLast(), um Elemente hinzuzufügen - Fügen Sie das angegebene Element am Ende der ArrayDeque-Doppelende-Kette hinzu
add() -addFirst()
Fügen Sie am Anfang der ArrayDeque-Doppelend-K队列 den angegebenen Element ein - addLast()
Hinweis:Fügen Sie den angegebenen Inhalt am Ende der ArrayDeque-Doppelend-K队列 ein (equivalent zu add())
Beispielsweise,
import java.util.ArrayDeque; class Main { public static void main(String[] args) { ArrayDeque<String> animals = new ArrayDeque<>(); //Wenn die ArrayDeque-Doppelend-K队列已voll, dann lösen alle diese Methoden add(), addFirst() und addLast() IllegalStateException aus. animals.add("Dog"); //Verwenden Sie add () Verwenden Sie addFirst () //Verwenden Sie addLast() animals.addLast("Horse"); System.out.println("ArrayDeque: "); + animals); } }
Ausgabenergebnis
ArrayDeque: [Katze, Hund, Pferd]
2.Verwenden Sie offer(), offerFirst() und offerLast(), um Elemente einzufügen
offer() - Fügen Sie das angegebene Element am Ende der ArrayDeque-Doppelende-Kette hinzu
offerFirst() - Fügen Sie das angegebene Element am Anfang der ArrayDeque-Doppelende-Kette hinzu
offerLast() - Fügen Sie das angegebene Element am Ende der ArrayDeque-Doppelende-Kette hinzu
Hinweis: offer(), offerFirst() und offerLast() geben true zurück, ob der Element erfolgreich eingefügt wurde;否则,返回空。Wenn die ArrayDeque-Doppelende-Kette voll ist, geben diese Methoden false zurück。
Beispielsweise,
import java.util.ArrayDeque; class Main { public static void main(String[] args) { ArrayDeque<String> animals = new ArrayDeque<>(); //Verwenden Sie offer() animals.offer("Hund"); //Verwenden Sie offerFirst() animals.offerFirst("Katze"); //Verwenden Sie offerLast() animals.offerLast("Pferd"); System.out.println("ArrayDeque: "); + animals); } }
Ausgabenergebnis
ArrayDeque: [Katze, Hund, Pferd]
1.Verwenden Sie getFirst() und getLast(), um Elemente abzurufen
getFirst() - Gibt den ersten Element der ArrayDeque-Doppelende-Kette zurück
getLast() - Gibt den letzten Element der ArrayDeque-Doppelende-Kette zurück
Anmerkung:Wenn die ArrayDeque-Doppelende-Kette leer ist, wirft getFirst() und getLast() NoSuchElementException.
Beispielsweise,
import java.util.ArrayDeque; class Main { public static void main(String[] args) { ArrayDeque<String> animals = new ArrayDeque<>(); animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayDeque: "); + animals); // Erhalte das erste Element String firstElement = animals.getFirst(); System.out.println("Erster Element: " + "") + firstElement); //Erhalte das letzte Element String lastElement = animals.getLast(); System.out.println("Letzter Element: " + "") + lastElement); } }
Ausgabenergebnis
ArrayDeque: [Hund, Katze, Pferd] Erstes Element: Dog Letztes Element: Horse
2.Verwenden Sie peek(), peekFirst() und peekLast(), um Elemente abzurufen
peek() - Gibt den ersten Element der ArrayDeque-Doppelende-Kette zurück
peekFirst() - Gibt den ersten Element der ArrayDeque-Doppelende-Kette zurück (äquivalent zu peek())
peekLast() - Gibt den letzten Element der ArrayDeque-Doppelende-Kette zurück
Beispielsweise,
import java.util.ArrayDeque; class Main { public static void main(String[] args) { ArrayDeque<String> animals = new ArrayDeque<>(); animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayDeque: "); + animals); //Verwenden Sie peek() String element = animals.peek(); System.out.println("Kopf-Element: " + "") + element); //Verwenden Sie peekFirst() String firstElement = animals.peekFirst(); System.out.println("Erster Element: " + "") + firstElement); //Verwenden Sie peekLast String lastElement = animals.peekLast(); System.out.println("Letzter Element: " + "") + lastElement); } }
Ausgabenergebnis
ArrayDeque: [Hund, Katze, Pferd] Kopf-Element: Dog Erstes Element: Dog Letztes Element: Horse
Hinweis:Wenn die ArrayDeque-Doppelendkette leer ist, werfen peek(), peekFirst() und getLast() NoSuchElementException aus.
1.Verwenden Sie die Methoden remove(), removeFirst(), removeLast(), um Elemente zu löschen
remove() - Geben Sie und löschen Sie ein Element vom ersten Element der ArrayDeque-Doppelendkette zurück
remove(element) - Geben Sie und löschen Sie das spezifizierte Element vom Kopf der ArrayDeque-Doppelendkette zurück
removeFirst() - Geben Sie und löschen Sie den ersten Element der ArrayDeque-Doppelendkette zurück (äquivalent zu remove())
removeLast() - Geben Sie und löschen Sie den letzten Element der ArrayDeque-Doppelendkette zurück
Hinweis:Wenn die ArrayDeque-Doppelendkette leer ist, werden die Methoden remove(), removeFirst() und removeLast() eine Ausnahme ausgelöst. Außerdem wird eine Ausnahme ausgelöst, wenn das Element nicht gefunden wird, remove(element).
Beispielsweise,
import java.util.ArrayDeque; class Main { public static void main(String[] args) { ArrayDeque<String> animals = new ArrayDeque<>(); animals.add("Dog"); animals.add("Cat"); animals.add("Cow"); animals.add("Horse"); System.out.println("ArrayDeque: "); + animals); //Verwenden Sie remove() String element = animals.remove(); System.out.println("Löschen Sie Element: ") + element); System.out.println("Neue ArrayDeque: "); + animals); //Verwenden Sie removeFirst() String firstElement = animals.removeFirst(); System.out.println("Löschen des ersten Elements: "); + firstElement); //Verwenden Sie removeLast() String lastElement = animals.removeLast(); System.out.println("Löschen des letzten Elements: "); + lastElement); } }
Ausgabenergebnis
ArrayDeque: [Dog, Cat, Cow, Horse] Löschen des Elements: Dog Neue ArrayDeque: [Cat, Cow, Horse] Löschen des ersten Elements: Cat Löschen des letzten Elements: Horse
2.Verwenden Sie die Methoden poll(), pollFirst() und pollLast(), um Elemente zu löschen
poll() - Geben Sie und löschen Sie das erste Element der ArrayDeque-Doppelendkette zurück
pollFirst() - Geben Sie und löschen Sie den ersten Element der ArrayDeque-Doppelendkette zurück (äquivalent zu poll())
pollLast() - Geben Sie und löschen Sie den letzten Element der ArrayDeque-Doppelendkette zurück
Hinweis:Wenn die ArrayDeque-Doppelendkette leer ist, geben poll(), pollFirst() und pollLast() null zurück, wenn das Element nicht gefunden wird.
Beispielsweise,
import java.util.ArrayDeque; class Main { public static void main(String[] args) { ArrayDeque<String> animals = new ArrayDeque<>(); animals.add("Dog"); animals.add("Cat"); animals.add("Cow"); animals.add("Horse"); System.out.println("ArrayDeque: "); + animals); //Verwenden Sie poll() String element = animals.poll(); System.out.println("Löschen Sie Element: ") + element); System.out.println("Neue ArrayDeque: "); + animals); //Verwenden Sie pollFirst() String firstElement = animals.pollFirst(); System.out.println("Löschen des ersten Elements: "); + firstElement); //Verwenden Sie pollLast() String lastElement = animals.pollLast(); System.out.println("Löschen des letzten Elements: "); + lastElement); } }
Ausgabenergebnis
ArrayDeque: [Dog, Cat, Cow, Horse] Löschen des Elements: Dog Neue ArrayDeque: [Cat, Cow, Horse] Löschen des ersten Elements: Cat Löschen des letzten Elements: Horse
3.Element löschen: Verwenden Sie die Methode clear()
Um alle Elemente aus der ArrayDeque-Doppelendekette zu löschen, verwenden wir die Methode clear(). Zum Beispiel,
import java.util.ArrayDeque; class Main { public static void main(String[] args) { ArrayDeque<String> animals = new ArrayDeque<>(); animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayDeque: "); + animals); //Verwenden Sie clear() animals.clear(); System.out.println("Neue ArrayDeque: "); + animals); } }
Ausgabenergebnis
ArrayDeque: [Hund, Katze, Pferd] Neue ArrayDeque: []
iterator() - Gibt einen Iterator zurück, der verwendet werden kann, um die ArrayDeque-Doppelendekette zu durchlaufen
descendingIterator() -Gibt einen Iterator zurück, der verwendet werden kann, um die ArrayDeque-Doppelendekette in umgekehrter Reihenfolge zu durchlaufen
Um diese Methoden zu verwenden, müssen wir das Paket java.util.Iterator importieren. Zum Beispiel,
import java.util.ArrayDeque; import java.util.Iterator; class Main { public static void main(String[] args) { ArrayDeque<String> animals = new ArrayDeque<>(); animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.print("ArrayDeque: "); //Verwenden Sie den Iterator Iterator<String> iterate = animals.iterator(); while(iterate.hasNext()) { System.out.print(iterate.next()); System.out.print(", "); } System.out.print("\nUmgekehrte ArrayDeque: "); //Verwenden Sie descendingIterator()} Iterator<String> desIterate = animals.descendingIterator(); while(desIterate.hasNext()) { System.out.print(desIterate.next()); System.out.print(", "); } } }
Ausgabenergebnis
ArrayDeque: [Hund, Katze, Pferd] Umgekehrte ArrayDeque: [Pferd, Katze, Hund]
Methode | Inhaltsbeschreibung |
---|---|
element() | Geben Sie ein Element von der Kopfseite der ArrayDeque doppelseitigen Warteschlange zurück. |
contains(element) | Suchen Sie das angegebene Element in der ArrayDeque doppelseitigen Warteschlange. Gibt true zurück, wenn das Element gefunden wird, sonst false. |
size() | Geben Sie die Länge der ArrayDeque doppelseitigen Warteschlange zurück. |
toArray() | Konvertieren Sie die ArrayDeque doppelseitige Warteschlange in ein Array und geben Sie sie zurück. |
clone() | Erstellen Sie eine Kopie der ArrayDeque doppelseitigen Warteschlange und geben Sie sie zurück. |
Um in Java zu implementierenLIFO (Last In, First Out)Stapel, es wird empfohlen, inStack-KlasseVerwenden Sie die doppelseitige Warteschlange. Die ArrayDeque ist schneller als die Stack-Klasse.
ArrayDeque bietet folgende Methoden an, die zur Implementierung von Stapeln verwendet werden können.
push() - Fügen Sie ein Element auf die Oberseite des Stapels hinzu
peek() - Geben Sie ein Element von der Oberseite des Stapels zurück
pop() - Geben Sie das Element zurück und löschen Sie es von der Oberseite des Stapels
Beispielsweise,
import java.util.ArrayDeque; class Main { public static void main(String[] args) { ArrayDeque<String> stack = new ArrayDeque<>(); //Fügen Sie das Element dem stack hinzu stack.push("Hund"); stack.push("Katze"); stack.push("Pferd"); System.out.println("Stack: ", + stack); //Zugriff auf das Element von der Oberseite des Stapels String element = stack.peek(); System.out.println("Zugriff auf Element: ", + element); //Element vom Stapeltopf löschen String remElement = stack.pop(); System.out.println("Element löschen: ", + remElement); } }
Ausgabenergebnis
Stack: [Horse, Cat, Dog] Element zugreifen: Horse Element löschen: Horse
ArrayDeque undJava LinkedListImplementiert den Deque-Interface. Es gibt jedoch einige Unterschiede zwischen ihnen.
LinkedList unterstützt leere Elemente, während ArrayDeque dies nicht tut.
Jeder Knoten der Liste enthält Verweise auf andere Knoten. Dies ist der Grund, warum LinkedList mehr Speicherplatz benötigt als ArrayDeque.
Wenn eine Warteschlange oder eine doppelte Warteschlange als Datenstruktur implementiert werden soll, könnte ArrayDeque schneller als LinkedList sein.