Java LinkedHashMap meistern: Erstellung, Operationen und Performance-Vergleich
Java LinkedHashMap meistern: Erstellung, Operationen und Performance-Vergleich
Entdecken Sie, wie Sie Javas LinkedHashMap erstellen, manipulieren und mit realen Beispielen und Best Practices vergleichen.
Die LinkedHashMap-Klasse in Javas Collections Framework kombiniert schnelle Lookups einer Hashtabelle mit vorhersehbarer Iterationsreihenfolge, dank einer internen doppelt verketteten Liste, die Einfüge- oder Zugriffsreihenfolge bewahrt.
LinkedHashMap erstellen
Um eine LinkedHashMap zu nutzen, importieren Sie java.util.LinkedHashMap und instanziieren Sie sie. Der Konstruktor akzeptiert initiale Kapazität, Load Factor und ein optionales accessOrder-Flag.
// LinkedHashMap mit initialer Kapazität 8 und Load Factor 0.6 LinkedHashMap<Key, Value> numbers = new LinkedHashMap<>(8, 0.6f);
Parameter:
- capacity – Anzahl Buckets; Default ist 16.
- loadFactor – Triggert Resizing bei 60% Füllung; Default ist 0.75.
- accessOrder –
falsefür Einfügereihenfolge,truefür least-to-most-recent Zugriffsreihenfolge.
Beispiel mit Default-Einstellungen:
LinkedHashMap<Key, Value> defaultMap = new LinkedHashMap<>();
LinkedHashMap aus existierenden Maps erstellen
Kopieren Sie eine existierende Map in eine LinkedHashMap, um Reihenfolge zu bewahren:
LinkedHashMap<String, Integer> evenNumbers = new LinkedHashMap<>(); evenNumbers.put("Two", 2); evenNumbers.put("Four", 4); LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>(evenNumbers); numbers.put("Three", 3);
Ausgabe:
LinkedHashMap1: {Two=2, Four=4} LinkedHashMap2: {Two=2, Four=4, Three=3}
Wichtige Operationen
Elemente einfügen
put(key, value)– Mapping hinzufügen oder ersetzen.putIfAbsent(key, value)– Nur hinzufügen falls Schlüssel fehlt.putAll(map)– Andere Map mergen.
LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>(); numbers.put("One", 1); numbers.putIfAbsent("Two", 2); numbers.putAll(evenNumbers);
Elemente abrufen
Keys, Values oder Entries abrufen:
entrySet()– Alle Schlüssel/Wert-Paare.keySet()– Alle Schlüssel.values()– Alle Werte.get(key)– Wert odernullfalls fehlend.getOrDefault(key, default)– Sicheres Abrufen mit Fallback.
int val = numbers.get("Three"); int def = numbers.getOrDefault("Five", 5);
Elemente entfernen
remove(key)– Nach Schlüssel löschen.remove(key, value)– Nur löschen falls Wert matcht.clear()– Map leeren.containsKey(key)– Existenzprüfung.containsValue(value)– Existenzprüfung.size()– Anzahl Einträge.isEmpty()– Leere-Prüfung.
LinkedHashMap vs. HashMap
- LinkedHashMap bewahrt Einfüge- oder Zugriffsreihenfolge; HashMap nicht.
- LinkedHashMap nutzt zusätzlichen Speicher für Knoten-Links.
- LinkedHashMaps Iteration ist leicht langsamer, bietet aber vorhersehbare Ordering.
Java
- Java Operatoren meistern: Typen, Syntax und praktische Beispiele
- Java Kommentare: Typen, Verwendung und Best Practices
- Java Enhanced For-Schleife meistern: Syntax, Beispiele und Best Practices
- Java Strings meistern: Erstellung, Methoden und Best Practices
- Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
- Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
- Java Try-With-Resources meistern: Automatisches Ressourcenmanagement erklärt
- Java Annotations erklärt: Typen, Platzierung und praktische Beispiele
- Java Assertions: Praktischer Leitfaden zur Fehlererkennung und Code-Reliabilität
- Java Vector verstehen: Verwendung, Funktionen und Vergleich mit ArrayList