← Java

Java · 06 / 18

Arrays, Listen, Sets und Maps

Du wählst eine Sammlung passend zu Reihenfolge, Eindeutigkeit oder Zuordnung.

  • Klein
  • Grundlagen
  • 15 min

Voraussetzungen: Methoden, Parameter und Ergebnisse

Java bietet verschiedene Sammlungen. Ein Array hat eine feste Größe. Eine List bildet eine Reihenfolge ab. Ein Set verhindert doppelte Werte. Eine Map ordnet Schlüsseln Werte zu. Mit Generics wie List<String> legt der Compiler fest, welcher Typ enthalten sein darf.

Beispieldateien

01Eine veränderliche Liste anlegen

ArrayList erlaubt add. List.of erzeugt dagegen eine nicht veränderbare Liste. Namen der Schnittstelle und der Implementierung dürfen verschieden sein: List beschreibt den Vertrag, ArrayList die konkrete Ablage.

Main.java · javaDatei öffnen
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
public class Main {
  public static void main(String[] args) {
    List<String> names = new ArrayList<>(List.of("Ada", "Lin"));
    names.add("Ada");
    var unique = new HashSet<>(names);
    Map<String, String> mapping = Map.of("recipient", "fullName");
    System.out.println(names.size());
    System.out.println(unique.size());
    System.out.println(mapping.get("recipient"));
  }
}

Starten / prüfen

java Main.java

02Duplikate und Schlüssel verstehen

HashSet entfernt doppelte Namen, verspricht aber keine sortierte Reihenfolge. Map.of ordnet PDF-Feldnamen einer CSV-Spalte zu. get liefert null für einen unbekannten Schlüssel.

03Typen und Mutabilität unterscheiden

Eine final-Variable verhindert nur eine Neuzuweisung. Sie macht eine ArrayList nicht unveränderlich. List.copyOf erzeugt eine nicht veränderbare Kopie. Auch diese Kopie kopiert enthaltene Objekte nicht automatisch tief.

Erwartetes Ergebnis

3 Namen, 2 eindeutige Namen und die Zuordnung fullName

Deine Übung

Erzeuge eine nicht veränderbare Kopie der Namen und versuche anschließend add.

Lösung mit Erklärung anzeigen

List<String> snapshot = List.copyOf(names) erzeugt die Kopie. snapshot.add("Sam") wirft UnsupportedOperationException. Die ursprüngliche ArrayList kann weiterhin verändert werden.

Projektbezug und Quellen

Das Beispiel ist zum Lernen vereinfacht. Die verlinkte Codeversion zeigt die Anwendung im Projekt und die dortigen Prüfungen.