Java LinkedHashMap beheersen: Aanmaak, operaties en prestatievergelijking
Java LinkedHashMap beheersen: Aanmaak, operaties en prestatievergelijking
Ontdek hoe je Java's LinkedHashMap kunt aanmaken, manipuleren en vergelijken met real-world voorbeelden en best practices.
De LinkedHashMap-klasse in Java's collections framework combineert de snelle lookups van een hash-tabel met een voorspelbare iteratievolgorde, dankzij een interne dubbel gelinkte lijst die invoeg- of toegangsvolgorde behoudt.
Een LinkedHashMap aanmaken
Om een LinkedHashMap te gebruiken, importeer java.util.LinkedHashMap en instantieer het. De constructor accepteert initiële capaciteit, load factor en een optionele accessOrder-vlag.
// LinkedHashMap met initiële capaciteit 8 en load factor 0.6 LinkedHashMap<Key, Value> numbers = new LinkedHashMap<>(8, 0.6f);
Parameters:
- capaciteit – het aantal buckets; standaard is 16.
- loadFactor – triggert resizing wanneer de tabel 60% vol is; standaard is 0.75.
- accessOrder –
falsevoor invoegvolgorde,truevoor minst-naar-meest recente toegangsvolgorde.
Voorbeeld met standaardinstellingen:
LinkedHashMap<Key, Value> defaultMap = new LinkedHashMap<>();
Een LinkedHashMap aanmaken vanuit bestaande Maps
Kopieer een bestaande map in een LinkedHashMap om volgorde te behouden:
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);
Output:
LinkedHashMap1: {Two=2, Four=4} LinkedHashMap2: {Two=2, Four=4, Three=3}
Belangrijkste operaties
Elementen invoegen
put(key, value)– voegt of vervangt een mapping.putIfAbsent(key, value)– voegt alleen toe als key ontbreekt.putAll(map)– voegt een andere map samen.
LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>(); numbers.put("One", 1); numbers.putIfAbsent("Two", 2); numbers.putAll(evenNumbers);
Elementen benaderen
Haal keys, values of entries op:
entrySet()– alle key/value-paren.keySet()– alle keys.values()– alle values.get(key)– waarde ofnullals ontbrekend.getOrDefault(key, default)– veilige ophaling met fallback.
int val = numbers.get("Three"); int def = numbers.getOrDefault("Five", 5);
Elementen verwijderen
remove(key)– verwijder op key.remove(key, value)– verwijder alleen als waarde matcht.clear()– wis de map.containsKey(key)– existentie-check.containsValue(value)– existentie-check.size()– aantal entries.isEmpty()– leegheidscheck.
LinkedHashMap vs. HashMap
- LinkedHashMap behoudt invoeg- of toegangsvolgorde; HashMap niet.
- LinkedHashMap gebruikt extra geheugen voor node-links.
- LinkedHashMap's iteratie is iets trager maar biedt voorspelbare ordening.
Java
- Java-operators beheersen: typen, syntax en praktische voorbeelden
- Java-commentaar: typen, gebruik en best practices
- Java if…else beheersen: control flow uitgelegd
- Java Enhanced For-lus beheersen: syntax, voorbeelden en best practices
- Java Strings beheersen: aanmaken, methodes en best practices
- Java interfaces meesteren: concepten, implementatie en best practices
- Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
- Java Try-with-resources meesteren: automatische resource management uitgelegd
- Java Annotaties uitgelegd: typen, plaatsing en praktische voorbeelden
- Java Assertions: een praktische gids voor bugdetectie en codebetrouwbaarheid
- Java Vector begrijpen: Gebruik, Kenmerken en Vergelijking met ArrayList