Wie kann ich mir ein Hashmap vorstellen?
lima-city → Forum → Programmiersprachen → Java
aktuellen temperaturen
anfrage
beliebige mathematische funktion
berechnen
bestimmten eintrag
computerprogramm
durchsuchen
eintrag
entsprechendem eintrag
grad
index
kollision
objekt
ort
problem
speichern
stadt
temperatur
wert nehmen
zuordnung
-
Guten Abend,
ich bin an den Anfängen der Java- Programmierung und bin nun dem Hashmap über den Weg gelaufen ;)
Was genau kann ich mir darunter vorstellen, gibt es ein Besipiel, womit das gut erklärt werden kann?
Danke -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich versuche mich kurz zu fassen:
Eine HashMap tut wie der Name schon sagt 2 Dinge: Eine Verwaltung von Objekten über Hashes und das Mapping von einem Schlüssel zu einem Wert.
Nehmen wir mal an du hast verschiedene Städte und möchstest dir zu diesen Städten die aktuellen Temperaturen speichern. Dann hast du Einträge wie
Berlin: 10 Grad
Hamburg: 12 Grad
München: 14 Grad
Köln: 16 Grad
Du hast also eine Zuordnung Stadt->Temperatur. So etwas kann man prima in einer Map speichern.
Bei Computerprogrammen ist natürlich auch oft die Geschwindigkeit wichtig. Wenn wir beispielsweise für alle Orte dieser Welt die Temperatur speichern wollen, würde es ja eigentlich sehr lange dauern, bis man einen bestimmten Eintrag gefunden hätte. Daher verwendet man Hashing, um schnell von einer Anfrage/Schlüssel/Objekt zu dem entsprechendem Eintrag kommt.
Eine Hashfunktion ist eine beliebige mathematische Funktion, die einen Index berechnet. An diesem Index sortiert man dann einen Eintrag weg. Wenn man beispielsweise hash("Berlin") sagt, könnte die Funktion den Wert 42 berechnen. Dann packt man die Temperatur für Berlin an die 42. Stelle im Speicher von der Hashmap. Dann findet man den Eintrag später auch viel schneller wieder, weil man nur den Hash berechnen muss und nicht alle Orte im Speicher von der Hashmap durchsuchen muss.
Beim Hashing gibt es das Problem, dass es zu Kollisionen kommen kann. Wenn Beispielsweise Stadt A den gleichen Hash hat wie Stadt B müssten sie beide am gleichen Speicherort abgelegt werden. Aber dafür gibt es weiter Lösungen, die ich hier nicht weitere ausführen will. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage