magicmarcy.de | Maps in Java - mehr als Wegweiser

Maps in Java - mehr als Wegweiser

16. März 2025 - Lesezeit: 6 Minuten

In der Java-Welt begegnet man früher oder später sogenannten Maps (der Map-Schnittstelle) – und das völlig zu Recht! Sie ist ein grundlegender Bestandteil der Java Collection Frameworks und ermöglicht es, anders als Listen, Daten als Schlüssel-Wert-Paare zu speichern.

Eine Map ist grundsätzlich erstmal eine Datenstruktur, in der jeder Schlüssel (Key) genau einem Wert (Value) zugeordnet ist. Das kennt man z. B. aus Wörterbüchern:

  • Schlüssel: das Wort
  • Wert: die Bedeutung

In Java können sowohl Schlüssel als auch Werte beliebige Objekttypen sein (z. B. String, Integer, eigene Klassen usw.). Wichtig ist, dass es keine primitiven Datentypen sein dürfen.

Ein Beispiel:

import java.util.HashMap;
import java.util.Map;

public class MapBeispiel {
    public static void main(String[] args) {
        // Eine neue Map erstellen
        Map<String, String> telefonbuch = new HashMap<>();

       // Einträge hinzufuegen
        telefonbuch.put("Anna", "0151-1234567");
        telefonbuch.put("Bernd", "0170-9876543");
        telefonbuch.put("Clara", "0160-5551234");

        // Zugriff auf einen bestimmten Eintrag
        String nummerAnna = telefonbuch.get("Anna");
        System.out.println("Annas Nummer: " + nummerAnna);

       // Alle Eintraege durchlaufen
        System.out.println("Alle Einträge im Telefonbuch:");
        for (Map.Entry<String, String> eintrag : telefonbuch.entrySet()) {
            System.out.println(eintrag.getKey() + " → " + eintrag.getValue());
        }

       // Existenz eines Schluessels pruefen
        if (telefonbuch.containsKey("Bernd")) {
            System.out.println("Bernd ist im Telefonbuch.");
        }

        // Eintrag entfernen
        telefonbuch.remove("Clara");

       // Anzahl der Eintraege
        System.out.println("Anzahl der Kontakte: " + telefonbuch.size());
    }
}

Doch, was passiert hier genau?

Code

Erklärung
Map<String, String> telefonbuch = new HashMap<>(); Erstellt eine neue Map, die als Schlüssel und Wert jeweils String-Objekte erwartet.
put("Anna", "0151-1234567"); Fügt einen Eintrag hinzu – der Name ist der Schlüssel, die Telefonnummer der Wert.
Es ist wichtig zu erwähnen, dass ein erneuter put auf den Key Anna die Value überschreibt!
get("Anna") Gibt den Wert (die Value) (also die Telefonnummer) für den Schlüssel „Anna“ zurück.
entrySet() Gibt eine Menge aller Schlüssel-Wert-Paare zurück, ideal für Schleifen.
containsKey("Bernd") Prüft, ob der Schlüssel „Bernd“ enthalten ist.
remove("Clara") Entfernt den Eintrag mit dem Schlüssel „Clara“.
size() Gibt die Anzahl der enthaltenen Einträge zurück.

Wann und warum verwendet man eigentlich Maps?

Maps sind ideal, wenn:

  • du Daten eindeutig über Schlüssel identifizieren willst (z. B. ID → Nutzername),
  • du schnell auf Werte zugreifen möchtest (bessere Performance als Listen bei gezieltem Zugriff),
  • du eine Zuweisung zwischen zwei Objekten brauchst.

Beispiele aus der Praxis:

  • Konfigurationen (Einstellung → Wert)
  • Benutzerverwaltung (UserId → Benutzername)
  • Zählungen (Wort → Häufigkeit)

Unterschiedliche Arten von Maps

Maps gibt es, genau wie Listen, in unterschiedlichen Implementierungen. Beim Einsatz einer HashMap ist der Zugriff sehr schnell aber die Reihenfolge der hinzugefügten Objekte ist nicht garantiert da hier speicheroptimiert gearbeitet wird. Eine TreeMap hingegen sortiert die Einträge nach ihrem Schlüssel für den Zugriff und ist somit etwas langsamer. Eine LinkedHashMap garantiert dir, dass die Einträge in der Reihenfolge vorhanden sind, in der du sie hinzugefügt hast.

Maps bieten tolle und vielseitige Möglichkeiten mit Daten umzugehen und ermöglichen einen unkomplizierten Zugriff. Sobald man das Prinzip der Schlüssel-Wert-Zuordnung einmal verstanden hat, lassen sich viele praktische Anwendungsfälle damit Elegant lösen.

Hast du auch schon einmal mit Maps gearbeitet? Was gefällt dir dabei besonders gut? Lass es mich gern in den Kommentare wissen.

Brian
Geschrieben von Brian am 16. März 2025
Zunächst einmal möchte ich sagen, dass es cool ist, dass die Kommentarfunktion wieder da ist. So etwas braucht ein Blog, gerade wenn es um Beiträge geht, über die man diskutieren kann und soll. Zum Beitrag selbst: Maps sind cool und aus der Java-Welt nicht mehr wegzudenken. Ich hab das in anderen Programmiersprachen schon so oft vermisst. Klar gibt es da andere Wege aber echt Maps gibt es halt nur Java.

Support

Wenn du mich und meine Arbeit unterstützen möchtest, freue ich mich sehr über eine kleine Aufmerksamkeit in Form eines Kaffees ;-)



Weitere Informationen, wie du mich und meine Arbeit unterstützen kannst, findest du hier.