HashMap: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 20: | Zeile 20: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == HashMap in Java == | ||
=== Erstellen === | |||
<syntaxhighlight lang="java"> | |||
HashMap<String, Double> map = new HashMap<>(); | |||
</syntaxhighlight> | |||
=== Elemente hinzufügen === | |||
'''put(K key, V value)''' – Element hinzufügen / überschreiben | |||
<syntaxhighlight lang="java"> | |||
map.put("Laptop", 999.99); | |||
map.put("Maus", 19.99); | |||
</syntaxhighlight> | |||
=== Wert abrufen === | |||
'''get(Object key)''' | |||
<syntaxhighlight lang="java"> | |||
double preis = map.get("Laptop"); | |||
</syntaxhighlight> | |||
'''getOrDefault(Object key, V defaultValue)''' | |||
<syntaxhighlight lang="java"> | |||
double preis = map.getOrDefault("Monitor", 0.0); | |||
</syntaxhighlight> | |||
=== Prüfen === | |||
'''containsKey(Object key)''' | |||
<syntaxhighlight lang="java"> | |||
map.containsKey("Maus"); | |||
</syntaxhighlight> | |||
'''containsValue(Object value)''' | |||
<syntaxhighlight lang="java"> | |||
map.containsValue(19.99); | |||
</syntaxhighlight> | |||
=== Elemente entfernen === | |||
'''remove(Object key)''' | |||
<syntaxhighlight lang="java"> | |||
map.remove("Maus"); | |||
</syntaxhighlight> | |||
'''remove(Object key, Object value)''' | |||
<syntaxhighlight lang="java"> | |||
map.remove("Laptop", 999.99); | |||
</syntaxhighlight> | |||
=== Werte ändern === | |||
'''replace(K key, V value)''' | |||
<syntaxhighlight lang="java"> | |||
map.replace("Laptop", 899.99); | |||
</syntaxhighlight> | |||
'''replace(K key, V oldValue, V newValue)''' | |||
<syntaxhighlight lang="java"> | |||
map.replace("Laptop", 999.99, 899.99); | |||
</syntaxhighlight> | |||
=== Größe und Zustand === | |||
'''size()''' | |||
<syntaxhighlight lang="java"> | |||
int anzahl = map.size(); | |||
</syntaxhighlight> | |||
'''isEmpty()''' | |||
<syntaxhighlight lang="java"> | |||
map.isEmpty(); | |||
</syntaxhighlight> | |||
'''clear()''' | |||
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
map.clear(); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== | === Iteration === | ||
'''keySet()''' – alle Schlüssel | |||
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
for (String key : map.keySet()) { | |||
System.out.println( | System.out.println(key); | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'''values()''' – alle Werte | |||
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
for (Double value : map.values()) { | |||
System.out.println(value); | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
'''entrySet()''' – Schlüssel und Werte (empfohlen) | |||
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
for (String | for (Map.Entry<String, Double> e : map.entrySet()) { | ||
System.out.println( | System.out.println(e.getKey() + " : " + e.getValue()); | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Erweiterte Methoden === | |||
'''putIfAbsent(K key, V value)''' | |||
<syntaxhighlight lang="java"> | |||
map.putIfAbsent("Tablet", 299.99); | |||
</syntaxhighlight> | |||
'''compute(K key, BiFunction)''' | |||
<syntaxhighlight lang="java"> | |||
map.compute("Laptop", (k, v) -> v - 100); | |||
</syntaxhighlight> | |||
'''computeIfAbsent(K key, Function)''' | |||
<syntaxhighlight lang="java"> | |||
map.computeIfAbsent("Monitor", k -> 199.99); | |||
</syntaxhighlight> | |||
'''computeIfPresent(K key, BiFunction)''' | |||
<syntaxhighlight lang="java"> | |||
map.computeIfPresent("Laptop", (k, v) -> v * 0.9); | |||
</syntaxhighlight> | |||
'''merge(K key, V value, BiFunction)''' | |||
<syntaxhighlight lang="java"> | |||
map.merge("Laptop", 100.0, (alt, neu) -> alt + neu); | |||
</syntaxhighlight> | |||
=== Fazit === | |||
* Wichtige Methoden: '''put''', '''get''', '''remove''', '''containsKey''' | |||
* Iteration: '''entrySet()''' | |||
* Erweiterte Verarbeitung: '''compute''', '''merge''' | |||
== typische Einsatzgebiete == | == typische Einsatzgebiete == | ||
Version vom 22. April 2026, 05:49 Uhr
Eine HashMap ist eine Datenstruktur aus der Java-Collections-API, die Daten als Schlüssel-Wert-Paare speichert. Jeder Schlüssel ist eindeutig und ermöglicht einen sehr schnellen Zugriff auf den zugehörigen Wert.
Eigenschaften
- speichert Daten als key → value
- jeder Schlüssel darf nur einmal vorkommen
- Werte dürfen mehrfach vorkommen
- sehr schnelle Zugriffe durch Hashing
- Reihenfolge ist nicht garantiert
Beispiel: Erstellen und Befüllen einer HashMap
import java.util.HashMap;
HashMap<String, Integer> personen = new HashMap<>();
personen.put("Anna", 25);
personen.put("Max", 31);
personen.put("Lisa", 28);
HashMap in Java
Erstellen
HashMap<String, Double> map = new HashMap<>();
Elemente hinzufügen
put(K key, V value) – Element hinzufügen / überschreiben
map.put("Laptop", 999.99);
map.put("Maus", 19.99);
Wert abrufen
get(Object key)
double preis = map.get("Laptop");
getOrDefault(Object key, V defaultValue)
double preis = map.getOrDefault("Monitor", 0.0);
Prüfen
containsKey(Object key)
map.containsKey("Maus");
containsValue(Object value)
map.containsValue(19.99);
Elemente entfernen
remove(Object key)
map.remove("Maus");
remove(Object key, Object value)
map.remove("Laptop", 999.99);
Werte ändern
replace(K key, V value)
map.replace("Laptop", 899.99);
replace(K key, V oldValue, V newValue)
map.replace("Laptop", 999.99, 899.99);
Größe und Zustand
size()
int anzahl = map.size();
isEmpty()
map.isEmpty();
clear()
map.clear();
Iteration
keySet() – alle Schlüssel
for (String key : map.keySet()) {
System.out.println(key);
}
values() – alle Werte
for (Double value : map.values()) {
System.out.println(value);
}
entrySet() – Schlüssel und Werte (empfohlen)
for (Map.Entry<String, Double> e : map.entrySet()) {
System.out.println(e.getKey() + " : " + e.getValue());
}
Erweiterte Methoden
putIfAbsent(K key, V value)
map.putIfAbsent("Tablet", 299.99);
compute(K key, BiFunction)
map.compute("Laptop", (k, v) -> v - 100);
computeIfAbsent(K key, Function)
map.computeIfAbsent("Monitor", k -> 199.99);
computeIfPresent(K key, BiFunction)
map.computeIfPresent("Laptop", (k, v) -> v * 0.9);
merge(K key, V value, BiFunction)
map.merge("Laptop", 100.0, (alt, neu) -> alt + neu);
Fazit
- Wichtige Methoden: put, get, remove, containsKey
- Iteration: entrySet()
- Erweiterte Verarbeitung: compute, merge
typische Einsatzgebiete
- Zuordnung von IDs zu Objekten
- Konfigurationen (Schlüssel → Einstellung)
- Häufigkeitszählungen (z. B. Wortanzahl)
- schnelle Suchstrukturen
Kurzmerksatz
Eine HashMap speichert Schlüssel-Wert-Paare und ermöglicht sehr schnellen Zugriff über eindeutige Schlüssel.
