Java ArrayList: Ihre Schaltstelle zu dynamischen Sammlungen

Einführung

Hallo dort, zukünftige Java-Enthusiasten! Heute tauchen wir in eines der nützlichsten und vielseitigsten Werkzeuge von Java ein: die ArrayList. Stellen Sie sich vor, Sie organisieren eine Party und sind sich nicht sicher, wie viele Freunde erscheinen werden. Sie könnten eine feste Anzahl an Stühlen aufstellen, aber was passiert, wenn mehr Menschen kommen? Oder noch schlimmer, wenn die Hälfte der Stühle leer bleiben? Hier kommt die ArrayList in der Programmierwelt zum Einsatz – es ist wie eine magische Gästeliste, die sich je nach Bedarf vergrößert oder verkleinert!

Java - ArrayList

Klassendeklaration

Beginnen wir mit den Grundlagen. In Java ist die ArrayList Teil des Pakets java.util. Um sie zu verwenden, müssen Sie sie wie folgt importieren:

import java.util.ArrayList;

Die ArrayList-Klasse wird wie folgt deklariert:

public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, Serializable

Keine Sorge, wenn das abschreckend wirkt – wir werden das Schritt für Schritt durchgehen!

Was bedeutet das?

  • <E>: Dies ist ein Typparameter. Es bedeutet, dass die ArrayList jeden Typ von Objekt aufnehmen kann. Es ist wie zu sagen: "Diese ArrayList kann Dinge aufnehmen, und wir geben später an, welche Art von Dingen das sind."
  • extends AbstractList<E>: ArrayList baut auf einer anderen Klasse namens AbstractList auf.
  • implements List<E>, RandomAccess, Cloneable, Serializable: Dies sind Schnittstellen, die ArrayList implementiert und ihr bestimmte Fähigkeiten verleiht.

Klassenkonstruktoren

Wenn Sie eine ArrayList erstellen, haben Sie drei Möglichkeiten:

  1. Eine leere ArrayList erstellen:

    ArrayList<String> freundesListe = new ArrayList<>();
  2. Eine ArrayList mit einer anfänglichen Kapazität erstellen:

    ArrayList<Integer> zahlen = new ArrayList<>(20);
  3. Eine ArrayList aus einer anderen Sammlung erstellen:

    ArrayList<Double> punktzahlen = new ArrayList<>(bestehendeListe);

Im ersten Beispiel stellen Sie sich vor, Sie beginnen eine neue Freundesliste. Im zweiten Beispiel bereiten Sie eine Liste von 20 Zahlen vor. Das Dritte ist wie eine Kopie einer bestehenden Gästeliste, um eine neue zu beginnen.

Klassenmethoden

Die ArrayList kommt mit einer Werkzeugkiste voller nützlicher Methoden. Sehen wir uns einige der häufigsten an:

Methode Beschreibung
add(E element) Fügt ein Element am Ende der Liste hinzu
add(int index, E element) Fügt ein Element an der angegebenen Position ein
get(int index) Gibt das Element an der angegebenen Position zurück
set(int index, E element) Ersetzt das Element an der angegebenen Position
remove(int index) Entfernt das Element an der angegebenen Position
size() Gibt die Anzahl der Elemente in der Liste zurück
clear() Entfernt alle Elemente aus der Liste
contains(Object o) Gibt true zurück, wenn die Liste das angegebene Element enthält

Diese Methoden sind wie verschiedene Partylustige – Gäste hinzufügen, überprüfen, wer da ist, oder jemanden bitten zu gehen (natürlich höflich!).

Vererbte Methoden

Die ArrayList erbt auch Methoden von ihren Elternklassen und Schnittstellen. Einige bemerkenswerte Beispiele sind:

  • Von AbstractList: iterator(), listIterator()
  • Von AbstractCollection: toString(), isEmpty()
  • Von Object: clone(), equals(), hashCode()

Stellen Sie sich diese als Bonusfunktionen vor, die mit Ihrer ArrayList kommen!

Hinzufügen und Entfernen von Elementen aus einer ArrayList von Strings Beispiel

Lassen Sie uns unsere Kenntnisse mit einem realen Beispiel anwenden. Wir erstellen eine ArrayList, um eine Leseliste zu verwalten:

import java.util.ArrayList;

public class Leseliste {
public static void main(String[] args) {
// Erstellen einer ArrayList, um Buchtitel zu speichern
ArrayList<String> buchListe = new ArrayList<>();

// Hinzufügen von Büchern zur Liste
buchListe.add("To Kill a Mockingbird");
buchListe.add("1984");
buchListe.add("The Great Gatsby");

System.out.println("Ursprüngliche Leseliste: " + buchListe);

// Hinzufügen eines Buches an eine spezifische Position
buchListe.add(1, "Pride and Prejudice");

System.out.println("Nach dem Hinzufügen eines neuen Buches: " + buchListe);

// Entfernen eines Buches
buchListe.remove("1984");

System.out.println("Nach dem Entfernen eines Buches: " + buchListe);

// Überprüfen, ob ein Buch in der Liste ist
String suchBuch = "The Great Gatsby";
if (buchListe.contains(suchBuch)) {
System.out.println(suchBuch + " ist in Ihrer Leseliste!");
} else {
System.out.println(suchBuch + " ist nicht in Ihrer Leseliste.");
}

// Ermitteln der Größe der Liste
System.out.println("Sie haben " + buchListe.size() + " Bücher in Ihrer Leseliste.");
}
}

Lassen Sie uns das aufbrechen:

  1. Wir beginnen, indem wir eine ArrayList namens buchListe erstellen, um String-Objekte (Buchtitel) zu speichern.
  2. Wir fügen drei Bücher mit der add()-Methode hinzu.
  3. Wir drucken die ursprüngliche Liste mit System.out.println() aus. Hier wird automatisch die toString()-Methode der ArrayList aufgerufen.
  4. Wir fügen "Pride and Prejudice" an der Stelle 1 (der zweiten Position) mit add(int index, E element) hinzu.
  5. Wir entfernen "1984" mit der remove()-Methode.
  6. Wir verwenden contains(), um zu überprüfen, ob "The Great Gatsby" in unserer Liste ist.
  7. Schließlich verwenden wir size(), um die Anzahl der Bücher in unserer Liste zu erhalten.

Ausgabe

Wenn Sie dieses Programm ausführen, sehen Sie etwas wie folgt:

Ursprüngliche Leseliste: [To Kill a Mockingbird, 1984, The Great Gatsby]
Nach dem Hinzufügen eines neuen Buches: [To Kill a Mockingbird, Pride and Prejudice, 1984, The Great Gatsby]
Nach dem Entfernen eines Buches: [To Kill a Mockingbird, Pride and Prejudice, The Great Gatsby]
The Great Gatsby ist in Ihrer Leseliste!
Sie haben 3 Bücher in Ihrer Leseliste.

Und so haben Sie es! Sie haben soeben erstellt, manipuliert und erkundet eine ArrayList. Es ist wie eine Buchclub-Party organisiert zu haben, bei der Sie neue Titel hinzufügen, abgeschlossene entfernen und Ihre Lesabenteuer verfolgen.

Denken Sie daran, die ArrayList ist unglaublich flexibel. Sie können sie verwenden, um Listen von allem zu verwalten – Zahlen, benutzerdefinierte Objekte oder sogar andere ArrayLists! Während Sie Ihre Java-Reise fortsetzen, werden Sie die ArrayList zu einer Ihrer vertrautesten Werkzeuge in Ihrer Programmierwerkzeugkiste finden.

Also, üben Sie weiter, coden Sie weiter und vor allem haben Sie weiter Spaß mit Java! Wer weiß? Vielleicht wird Ihr nächstes großes Projekt die Welt mit einer ArrayList verändern – eine dynamische Liste nach der anderen!

Credits: Image by storyset