Java ArrayDeque Klasse: Ein Leitfaden für Anfänger

Einführung

Hallo dort, zukünftige Java-Zauberer! Heute werden wir eine aufregende Reise in die Welt der Java-ArrayDeque-Klasse antreten. Ich weiß, was ihr vielleicht denkt: "Deque? Ist das ein schickes französisches Wort?" Nun, nicht ganz! In der Programmierwelt steht deque (ausgesprochen "deck") für eine doppelseitige Warteschlange. Es ist wie eine Schlange bei einer Karnevalfahrt, wo Menschen von beiden Enden beitreten oder verlassen können. Cool, nicht wahr?

Java -  ArrayDeque

ArrayDeque ist die Java-Implementierung des Deque-Interfaces und ein leistungsfähiges Werkzeug in eurem Programmierkit. Es ist wie ein Schweizer Army Messer für Daten Speicherung und Manipulation. Also schnallt euch an, und lasst uns rein springen!

Deklaration der ArrayDeque-Klasse

Bevor wir ArrayDeque verwenden können, müssen wir wissen, wie man sie deklariert. Es ist wirklich einfach. So geht das:

import java.util.ArrayDeque;

ArrayDeque<Integer> zahlen = new ArrayDeque<Integer>();

In diesem Beispiel erstellen wir eine ArrayDeque, die Integer-Objekte speichert. Aber keine Sorge, ArrayDeque ist flexibel – ihr könnt sie mit jedem Objekttyp verwenden!

Konstruktoren der ArrayDeque-Klasse

ArrayDeque kommt mit drei Konstruktoren. Denken Sie daran, dass Konstruktoren verschiedene Möglichkeiten sind, Ihre Warteschlange zu bauen:

  1. ArrayDeque(): Dies erstellt eine leere Warteschlange mit einer initialen Kapazität von 16 Elementen.
  2. ArrayDeque(int numElements): Dies erstellt eine Warteschlange mit der angegebenen initialen Kapazität.
  3. ArrayDeque(Collection<? extends E> c): Dies erstellt eine Warteschlange, die die Elemente der angegebenen Sammlung enthält.

Sehen wir uns diese in Aktion an:

// Standardkonstruktor
ArrayDeque<String> obst1 = new ArrayDeque<>();

// Konstruktor mit initialer Kapazität
ArrayDeque<String> obst2 = new ArrayDeque<>(20);

// Konstruktor mit einer Sammlung
ArrayList<String> obstListe = new ArrayList<>();
obstListe.add("Apfel");
obstListe.add("Banane");
ArrayDeque<String> obst3 = new ArrayDeque<>(obstListe);

Methoden der ArrayDeque-Klasse

Nun schauen wir uns einige der am häufigsten verwendeten Methoden in ArrayDeque an. Ich liebe es, diese Methoden als die verschiedenen Tricks zu denken, die euer Schweizer Army Messer ausführen kann.

Methode Beschreibung
addFirst(E e) Fügt ein Element vorne in die Warteschlange ein
addLast(E e) Fügt ein Element hinten in die Warteschlange ein
offerFirst(E e) Fügt ein Element vorne in die Warteschlange ein (gibt boolean zurück)
offerLast(E e) Fügt ein Element hinten in die Warteschlange ein (gibt boolean zurück)
removeFirst() Entfernt und gibt das erste Element zurück
removeLast() Entfernt und gibt das letzte Element zurück
pollFirst() Entfernt und gibt das erste Element zurück (oder null, wenn leer)
pollLast() Entfernt und gibt das letzte Element zurück (oder null, wenn leer)
getFirst() Gibt das erste Element zurück, ohne es zu entfernen
getLast() Gibt das letzte Element zurück, ohne es zu entfernen
peekFirst() Gibt das erste Element zurück, ohne es zu entfernen (oder null, wenn leer)
peekLast() Gibt das letzte Element zurück, ohne es zu entfernen (oder null, wenn leer)

Beispiel für das Hinzufügen und Entfernen von Elementen aus einer ArrayDeque

Lassen Sie uns unsere neu erlangte Kenntnis mit einem praktischen Beispiel nutzen. Stellen wir uns vor, wir verwalten eine To-Do-Liste, bei der Aufgaben von beiden Enden hinzugefügt oder entfernt werden können.

import java.util.ArrayDeque;

public class ToDoList {
public static void main(String[] args) {
ArrayDeque<String> tasks = new ArrayDeque<>();

// Hinzufügen von Aufgaben
tasks.addFirst("Aufwachen");
tasks.addLast("Zähne putzen");
tasks.offerFirst("Wecker stellen");
tasks.offerLast("Ins Bett gehen");

System.out.println("Aktuelle Aufgaben: " + tasks);

// Entfernen von Aufgaben
String ersteAufgabe = tasks.removeFirst();
String letzteAufgabe = tasks.removeLast();

System.out.println("Erste abgeschlossene Aufgabe: " + ersteAufgabe);
System.out.println("Letzte abgeschlossene Aufgabe: " + letzteAufgabe);
System.out.println("Verbleibende Aufgaben: " + tasks);

// Ansehen von Aufgaben
String nächsteAufgabe = tasks.peekFirst();
String letzteAufgabe = tasks.peekLast();

System.out.println("Nächste Aufgabe: " + nächsteAufgabe);
System.out.println("Letzte Aufgabe: " + letzteAufgabe);
}
}

Lassen Sie uns das aufbrechen:

  1. Wir beginnen, indem wir eine ArrayDeque namens tasks erstellen.
  2. Wir fügen Aufgaben hinzu, indem wir addFirst(), addLast(), offerFirst() und offerLast() verwenden. Beachtet, wie wir Aufgaben an beide Enden der Warteschlange hinzufügen können.
  3. Wir entfernen dann Aufgaben von beiden Enden mit removeFirst() und removeLast().
  4. Schließlich sehen wir uns die ersten und letzten Aufgaben an, ohne sie zu entfernen, indem wir peekFirst() und peekLast() verwenden.

Ausgabe

Wenn ihr diesen Code ausführt, seht ihr etwas wie das Folgende:

Aktuelle Aufgaben: [Wecker stellen, Aufwachen, Zähne putzen, Ins Bett gehen]
Erste abgeschlossene Aufgabe: Wecker stellen
Letzte abgeschlossene Aufgabe: Ins Bett gehen
Verbleibende Aufgaben: [Aufwachen, Zähne putzen]
Nächste Aufgabe: Aufwachen
Letzte Aufgabe: Zähne putzen

Und da haben wir es! Ihr habt gerade erstellt, manipuliert und erkundet eine ArrayDeque. Ziemlich geil, nicht wahr?

Denken Sie daran, dass Praxis makes perfect. Versuchen Sie, Ihre eigene ArrayDeque zu erstellen und verschiedene Methoden auszuprobieren. Ihr könnt einen Playlist-Manager, einen Browser-Historien-Tracker oder sogar ein einfaches Undo/Redo-System erstellen!

ArrayDeque ist wie ein guter Freund – immer da, wenn ihr ihn braucht, bereit, von beiden Seiten zu helfen. Also seid nicht schüchtern, lernet ihn besser kennen, und bald werdet ihr deque-en wie ein Profi!

Happy coding, zukünftige Java-Meister! ??

Credits: Image by storyset