HashMap überschreibt Werte

der_guenn

Mitglied
Hallo,

ich habe folgendes Problem mit meinem HashMap:
Zuerst einmal ich habe 40 Objecte die ich in einen HashMap speichern will. Als Key benutze ich Stringvariablen. Ich habe also 40 verschiedene String-keys.

In einer Schleife fülle ich mein HashMap.
Folgendes passiert nachdem schon einige Objecte mit entsprechenden Keys im HashMap abgelegt wurden:
Ein neues Object wird mit einem neuen Key im n-ten Schleifendurchlauf in das HashMap eingefügt.
Beides, neues Object und neuer Key sind im HashMap noch NICHT vorhanden.
Beim Einfügen in das HashMap wird jedoch ein schon vorhandenes Object aus dem HashMap entfernt.

Hat jemand schon mal ähnliches bei HashMap beobachtet?
 
Hab ich noch nicht beobachtet.
Etwas Quellcode wäre jedoch hilfreich um zu sehen, was du genau machst. Wie erkennst du, dass die Einträge in der Hasmap nicht mehr da sind? Im Debug oder später beim Zugriff auf die Hashmap?
 
Hashmaps sind ja keine einfach sortierten Listen. Daher sehen die im Debug immer etwas komisch aus. Ich bin mir nicht sicher, welches Hashing-Verfahren in Java genutzt wird. Könnte sein, dass sich eine Hashmap bei neuen Einträgen neu sortiert. Dann stehen alte Einträge an anderen Positionen
 
Sollte deine HashMap in einer eigenen Klasse verpackt sein und du die toString() methode überschrieben hast, wird dir das Resultat von toString angezeigt, wenn du mit der Maus auf eine Instanzvariable gehst.
Ich finde das sehr hilfreich.

Dass der Debugger von Eclipse nicht immer alles ganz richtig anzeigt ist eine Tatsache mit der wir leben müssen.
 
Beim Einfügen in das HashMap wird jedoch ein schon vorhandenes Object aus dem HashMap entfernt.
Soll heißen, wenn der Schlüssel schon drin ist, dann wird dessen Wert überschrieben? Sollte ja auch so sein in einer HashMap, damit keine doppelten Schlüssel auftauchen, oder hab ich dich falsch verstanden?
 

Zurück
Oben