magicmarcy.de | Maps in Java - mehr als Wegweiser

Maps in Java - mehr als Wegweiser

Java • 16. März 2025 • Lesezeit: 4 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.

Ich schreibe diese Beiträge in meiner Freizeit und freue mich über jede Unterstützung. Wenn du magst, kannst du mir auf Ko-Fi einen Kaffee spendieren. Danke! ♥️

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.
Über
Avatar

Hi, ich bin Marcel!
Als Fachinformatiker für Anwendungsentwicklung und IHK-geprüfter Ausbilder teile ich auf meinem Blog Grundlagen- und Fortgeschrittenen-Wissen für angehende Entwickler*innen und Interessierte, sowie weitere spannende Themen aus der IT.

Blog Aktivität

Sep
 
 
 
Oct
 
 
 
Nov
 
 
 
Dec
 
Mon
Wed
Fri