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
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.
import java.util.ArrayList;
ArrayList<String> module = new ArrayList<>();
module.add("HTML");
module.add("Java");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.
module.get(0); // "HTML"
module.size(); // 2
module.contains("Java"); // true
module.remove("HTML");Durchlaufen
Die for-each-Schleife funktioniert wie bei Arrays.
forEach mit Lambda ist die kompakte Alternative.
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<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
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
Erkennen: Welcher Abschnitt passt?
Welcher Abschnitt passt zu diesen Begriffen?
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.
Fortschritt
Bereit zum Abschließen?
Markiere die Lektion als abgeschlossen, um XP und Streak zu erhalten.