Zum Inhalt springen
Lektion 8 von 26 12 Min. Mittel Zur Übung Mit Codebeispiel

Listen & Generics

ArrayList wächst dynamisch und ist die meistgenutzte Collection: Elemente hinzufügen, entfernen, durchsuchen.

Ansicht

01

Verstehen

Lies die Kernidee und das Beispiel.

02

Prüfen

Beantworte die Aktiv-Checks.

03

Anwenden

Setze die Transferaufgabe um.

Mini-Erfolg

Deine Einkaufsliste nimmt neue Einträge auf und entfernt einen wieder.

Warum das wichtig ist: Die meisten echten Daten wachsen oder schrumpfen. ArrayList ist dafür das Standardwerkzeug.

Vorher hilfreich

Lerninhalt

Verstehen & anwenden

1

ArrayList erzeugen

Der Typparameter in spitzen Klammern legt fest, was die Liste enthält (Generics).

Für primitive Typen gibt es Wrapper-Klassen: Integer statt int.

ArrayListgenerics
Liste anlegen
import java.util.ArrayList;

ArrayList<String> module = new ArrayList<>();
module.add("HTML");
module.add("Java");
2

Zugreifen und verändern

get(index) liest, set(index, wert) ersetzt, remove entfernt per Index oder Wert.

size() liefert die Anzahl — mit Klammern, anders als bei Arrays.

get()add()remove()size()
Listen-Methoden
module.get(0);          // "HTML"
module.size();          // 2
module.contains("Java"); // true
module.remove("HTML");
3

Durchlaufen

Die for-each-Schleife funktioniert wie bei Arrays.

forEach mit Lambda ist die kompakte Alternative.

for-eachforEach()
Iterieren
for (String modul : module) {
    System.out.println(modul);
}

module.forEach(m -> System.out.println(m));

Vertiefung

Dynamisch, aber nicht magisch

ArrayList kapselt ein Array, das bei Bedarf größer kopiert wird. Deshalb ist Hinzufügen am Ende schnell, Einfügen in der Mitte teurer. LinkedList kann in der Mitte schneller sein, ist aber in der Praxis selten die erste Wahl.

Der Typparameter <String> ist keine Dekoration: Er verhindert, dass versehentlich Zahlen in einer Namensliste landen. Für primitive Typen nutzt Java Wrapper wie Integer.

List als Interface
List<String> module = new ArrayList<>();
module.add("HTML");
module.add("Java");
module.remove("HTML");

for (String modul : module) {
    System.out.println(modul);
}

Merksatz: Programmiere gegen List, nicht gegen ArrayList. Der Typparameter macht die Absicht sichtbar und Fehler früh sichtbar.

Übungsaufgabe

Einkaufsliste

Baue eine Einkaufsliste mit Hinzufügen, Ausgeben, Suchen und Entfernen. Nutze eine ArrayList<String>.

Das soll dein Programm können

  • Mindestens vier Einträge hinzufügen
  • Prüfen, ob ein Artikel enthalten ist
  • Einen Artikel entfernen
  • Die Liste vor und nach dem Entfernen ausgeben

Schreibe den Code hier oder in deiner IDE und vergleiche ihn dann mit der Lösung.

Dein Code wird automatisch auf diesem Gerät gespeichert.

Hinweis anzeigen

Nutze add, contains, remove und eine for-each-Schleife. Die Ausgabe kannst du in eine kleine Methode auslagern.

Lösung anzeigen
Einkaufsliste.java
import java.util.ArrayList;
import java.util.List;

public class Einkauf {
    public static void main(String[] args) {
        List<String> liste = new ArrayList<>();
        liste.add("Brot");
        liste.add("Milch");
        liste.add("Kaffee");
        liste.add("Äpfel");

        ausgeben(liste);
        System.out.println("Kaffee enthalten: " + liste.contains("Kaffee"));
        liste.remove("Milch");
        ausgeben(liste);
    }

    static void ausgeben(List<String> liste) {
        System.out.println("Einkauf (" + liste.size() + "):");
        for (String artikel : liste) System.out.println("- " + artikel);
    }
}

Warum funktioniert das?

contains und remove vergleichen Strings über equals. Deshalb funktioniert das Entfernen von "Milch" zuverlässig, obwohl es ein neues String-Literal ist.

Aktiv-Check

Teste dein Verständnis

1/6

Erkennen: Welcher Abschnitt passt?

Welcher Abschnitt passt zu diesen Begriffen?

ArrayListgenerics
Tipp: Erst erinnern, dann prüfen. Fehler sind Teil des Lernens.

Spaßprojekt

Einkaufsliste

Baue eine Liste, die Einträge hinzufügt, ausgibt und den letzten Eintrag entfernt. Erweitere sie um eine Suche.

Selbstcheck

Kann ich das schon?

Hake ab, was du wirklich erklären oder selbst bauen könntest.

0 von 3 geschafft

Fortschritt

Bereit zum Abschließen?

Markiere die Lektion als abgeschlossen, um XP und Streak zu erhalten.

</> Learn-Program © 2026 · Lizenziert unter CC BY-NC-SA 4.0

Rechtliches & Lizenz