Zwischenstufe Java Tag 6: Collections Framework

Ziel dieses Tages

Heute wirst du lernen:

Am Ende wirst du in der Lage sein, Java Collections effektiv zu nutzen, um Daten zu speichern, zu verarbeiten und abzurufen.

Schritt 1: ArrayList & LinkedList

ArrayList ist ein dynamisches Array, LinkedList ist eine doppelt verkettete Liste.


import java.util.ArrayList;
import java.util.LinkedList;

ArrayList fruits = new ArrayList<>();
fruits.add("Apfel");
fruits.add("Banane");

LinkedList animals = new LinkedList<>();
animals.add("Hund");
animals.add("Katze");

Schritt 2: HashMap & HashSet

HashMap speichert Schlüssel-Wert-Paare. HashSet speichert nur einzigartige Elemente.


import java.util.HashMap;
import java.util.HashSet;

HashMap ages = new HashMap<>();
ages.put("Alice", 25);
ages.put("Bob", 30);

HashSet numbers = new HashSet<>();
numbers.add(5);
numbers.add(3);
numbers.add(5); // Duplikate werden ignoriert

Schritt 3: Iteratoren & erweiterte Schleifen

Du kannst Collections mit for-each oder Iteratoren durchlaufen.


for(int n : numbers) {
    System.out.println(n);
}

import java.util.Iterator;
Iterator it = numbers.iterator();
while(it.hasNext()) {
    System.out.println(it.next());
}

Schritt 4: Sortieren & Suchen

Du kannst Listen sortieren und nach Elementen suchen.


import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

ArrayList numbers = new ArrayList<>(Arrays.asList(5,3,8,1));
Collections.sort(numbers); // aufsteigende Reihenfolge

for(int n : numbers) {
    System.out.println(n);
}

Übung


ArrayList numbers = new ArrayList<>(Arrays.asList(5,3,8,1));
Collections.sort(numbers);
for(int n : numbers) {
    System.out.println(n);
}

Aufgabe

Speichere eine Liste von Zahlen, entferne Duplikate und sortiere sie aufsteigend.

Schritte:

Beispiel:


import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;

public class UniqueSortedList {
    public static void main(String[] args) {
        ArrayList numbers = new ArrayList<>(Arrays.asList(5, 3, 8, 1, 3, 5));

        // Duplikate entfernen
        HashSet uniqueNumbers = new HashSet<>(numbers);

        // Zurück in Liste umwandeln
        ArrayList sortedNumbers = new ArrayList<>(uniqueNumbers);

        // Sortieren
        Collections.sort(sortedNumbers);

        System.out.println(sortedNumbers); // [1, 3, 5, 8]
    }
}