Java List und ArrayList (Beispiel)

List und ArrayList (Beispiel)

Die Klasse ArrayList aus der Java Standard API ist mächtig und praktisch, wenn es um die Verwaltung von Listen mit dynamischer Länge und sich ändernden Inhalten geht. Sie bietet Operationen, die mit klassischen Arrays aufwändig und immer wiederkehrend gleich implementiert werden müssten. Hier einige einfache Beispiele, die zeigen, wie man mit einer ArrayList arbeiten kann.

Anmerkung vorab: Eine ArrayList implementiert das Interface List. Es ist zumeist gute Praxis, mit dem Interface anstatt der konkreten Implementierung weiterzuarbeiten. Deswegen weisen wir die ArrayList-Referenzen an List-Variablen zu:

ArrayList Beispiel: neu anlegen

Wir erzeugen eine ArrayList, fügen Elemente hinzu und geben diese einfach mal aus:
    List<String> farben = new ArrayList<String>();
    farben.add("rot");
    farben.add("blau");
    farben.add("gelb");
    farben.add("orange");
    for (String current: farben) {
        System.out.println(current);
    }

ArrayList Beispiel: prüfen, ob ein Element enthalten ist

Wir nehmen die obige Liste und prüfen, ob ein paar bestimmte Farben enthalten sind:
    if (farben.contains("lila")) {
        System.out.println("Lila ist dabei");
    }
    if (farben.contains("rot")) {
        System.out.println("Rot ist dabei");
    }

ArrayList Beispiel: Länge, Anzahl Elemente

Wir fragen die "Länge" einer Liste (size) ab, also "wieviele Elemente enthält die ArrayList":
    int count = farben.size();
    if (count > 100) {
        // irgendwas tun, was bei langen Listen sinnvoll ist
    } else {
        // irgendwas tun, was bei kurzen Listen sinnvoll ist
    }

ArrayList Beispiel: Elemente am Anfang einfügen

Wir fügen weitere Farben hinzu, aber nicht am Ende, sondern am Anfang.
    farben.add(0, "beige");
    farben.add(0, "braun");
    for (String current: farben) {
        System.out.println(current);
    }

Jetzt erscheint zuerst braun, dann beige, dann die übrigen Farben in der Reihenfolge wie vorhin.

Hinweis: Hier gibt es weitere Informationen zum Sortieren im Array

ArrayList Beispiel: Elemente löschen / entfernen

Wir können Objekte sowohl anhand Ihrer Idendität, als auch anhand Ihrer Position im Array entfernen:
    farben.remove(0); // Entfernt das Element an Position 0
    farben.remove("blau"); // Entfernt das Element "blau", sofern vorhanden
    for (String current: farben) {
        System.out.println(current);
    }

Liste zu Liste hinzufügen: addAll

Wir können alle Elemente einer Liste zu einer anderen Liste hinzufügen, ohne dafür selbst eine Schleife programmieren zu müssen:
    final List<String> neueFarben = new ArrayList<String>();
    neueFarben.add("cyan");
    neueFarben.add("beige");
    neueFarben.add("rosa");
    farben.addAll(neueFarben);
    for (String current: farben) {  // Jetzt sehen wir alle unsere Farben
        System.out.println(current);
    }

ArrayList Beispiel: ArrayList aus Array erzeugen und ArrayList in Array umwandeln

Wir können in Java sowohl aus einem Array eine ArrayList erzeugen, als auch eine ArrayList in ein Array umwandeln (wobei "umwandeln" streng genommen falsch ist, weil wir die ArrayList selbst dabei nicht verwandeln, sondern einfach ein neues Array erzeugen, welches genau die selben Elemente enthält, wie die ArrayList):
    final String[] array = new String[] {"Affe", "Pferd", "Elefant"};
    final List<String> tiere = new ArrayList<String>(array);  // erzeugt eine ArrayList mit den Elementen des Arrays
    // Wichtig: das Array und die ArrayList existieren nun unabhängig voneinander; die Daten des Array wurden einfach kopiert.
    // Änderungen des einen wirkt sich nach dem Kopiervorgang nicht mehr auf das andere aus.
    // Beispiele:
    array[1] = "Anderes Pferd";  // ändert nur das Array, nicht die ArrayList
    tiere.add("Kuh");  // ändert nur die ArrayList, nicht das Array

    // nun erzeugen wir ein Array mit den Elementen der ArrayList:
    String[] neuesArray = new String[tiere.size()];  // Array mit der korrekten Anzahl Elemente anlegen
    neuesArray = tiere.toArray(neuesArray);  // Daten aus der ArrayList in Array kopieren



Nach oben, Inhaltsverzeichnis, Impressum Admin: Artikel editieren