Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:java:algorithmen:assoziative_arrays:start [05.12.2022 18:54] – [Elemente hinzufügen] Frank Schiebel | faecher:informatik:oberstufe:java:algorithmen:assoziative_arrays:start [31.03.2025 16:36] (aktuell) – [Anmerkung zu Wrapper-Klassen] Frank Schiebel | ||
---|---|---|---|
Zeile 66: | Zeile 66: | ||
Um den Wert eines Elements einer HashMap auszulesen verwendet man die get()-Methode mit dem Schlüssel des Elements: | Um den Wert eines Elements einer HashMap auszulesen verwendet man die get()-Methode mit dem Schlüssel des Elements: | ||
+ | |||
+ | <code java> | ||
+ | String hsengland = hauptstadt.get(" | ||
+ | </ | ||
+ | |||
+ | ==== Elemente löschen ==== | ||
+ | |||
+ | Elemente löschen kann man unter Angabe des Schlüssels mit der Methode remove(). | ||
+ | |||
+ | <code java> | ||
+ | hauptstadt.remove(" | ||
+ | </ | ||
+ | |||
+ | Um **alle** Elemente zu löschen, kann man die Methode clear() verwenden: | ||
+ | |||
+ | <code java> | ||
+ | hauptstadt.clear(); | ||
+ | </ | ||
+ | |||
+ | ==== Anzahl der Elemente herausfinden ==== | ||
+ | |||
+ | Mit Hilfe der Methode size() kann man die Zahl der Elemene in den HashMap herausfinden: | ||
+ | |||
+ | <code java> | ||
+ | int elementAnzahl = hauptstadt.size(); | ||
+ | </ | ||
+ | |||
+ | ==== Operationen auf allen Elementen: Eine HashMap mit einer Schleife durchlaufen ==== | ||
+ | |||
+ | Die Elemente einer HashMap kann man mit einer foreach-Schleife durchlaufen. Dabei hat man im wesentlichen zwei Möglichkeiten: | ||
+ | |||
+ | **(1) Man durchläuft die Menge aller Schlüssel und beschafft sich die Werte zu den Schlüsseln mit der get()-Methode** | ||
+ | |||
+ | Die Menge aller Schlüssel erhält man mit der Methode keySet(). | ||
+ | |||
+ | <code java> | ||
+ | // Gibt die Schlüssel aus | ||
+ | for (String key : hauptstadt.keySet()) { | ||
+ | System.out.println(key); | ||
+ | } | ||
+ | |||
+ | // Gibt Schlüssel und Werte aus | ||
+ | for (String key : hauptstadt.keySet()) { | ||
+ | System.out.println(" | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | **(2) Wenn man an den Schlüsseln nicht interessiert ist, kann man direkt die Werte durchlaufen** | ||
+ | |||
+ | Mit der Methode values() kann man sich direkt die Menge der Werte beschaffen, und diese mit einer foreach-Schleife durchlaufen. | ||
+ | |||
+ | <code java> | ||
+ | // Nur die Werte beschaffen und ausgeben | ||
+ | for (String stadt : hauptstadt.values()) { | ||
+ | System.out.println(stadt); | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Anmerkung zu Wrapper-Klassen ===== | ||
+ | |||
+ | |||
+ | Schlüssel und Werte bei HashMaps sind stets **Objekte**. Aus diesem Grund schlägt eine Verwendung mit primitiven Datentypen wie int, char , double fehl: '' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Das Problem wird gelöst, indem man für die primitiven Datentypen die zugehörigen Wrapper-Klassen verwendet: | ||
+ | |||
+ | <code java> | ||
+ | HashMap< | ||
+ | </ | ||
+ | |||
+ | ==== Übersicht über die Wrapper-Klassen ==== | ||
+ | |||
+ | |||
+ | ^ Primitiver Typ ^ Wrapper Klasse | ||
+ | | byte | Byte | | ||
+ | | short | ||
+ | | int | ||
+ | | long | Long | | ||
+ | | float | ||
+ | | double | ||
+ | | char | Character | ||
+ | | boolean | ||
+ | |||
+ | |||
+ |