# Wert in HashMap überschreiben



## spike78 (16. Nov 2005)

Hallo,

ich habe folgende Frage bzw. Problem

Ich habe eine HashMap die als Key einen String hat und zu dem Key ein HashSet mit Werten.

Beispiel;

"Key" -> 01: Wert 15
         -> 02: Wert 16

Nun gebe ich auf meiner Oberfläche einen neuen Wert für 16 ein. Beispiel 20. 
Ich hätte nun gerne, dass genau an der Stelle wo vorher die 16 drin stand nun 20 steht ohne das die Reihenfolge
geändert wird.

Gruß
Michael


----------



## bygones (16. Nov 2005)

bei einer HashMap hast du keinen einfluss auf die Reihenfolge.

einen key überschreibst du einfach per put. Wenn dann alter key und neuer key identisch sind, so wird der alte wert überschrieben


----------



## spike78 (16. Nov 2005)

Das ist soweit klar. Ich mache map.put(key,set)

In meinem Set muss ich aber den Wert 15 zu 20 ändern. Und genau das weiss ich nicht wie es gehen soll ?

Gruß


----------



## Bleiglanz (16. Nov 2005)

wenn du den key nicht weisst, dann musst du durch die ganze Map iterieren um den key für den value 15 zu finden


----------



## spike78 (16. Nov 2005)

den Key kenn ich ja. Nur in dem HashSet, das zu dem Key gehört muss der Wert geändert 
werden.

Gruß

Ich habe sowas:

Key ->HashSet
              - 15
              -16

und das hätte ich gerne:

Key ->HashSet
              - 20
              - 16

Gruß
Michael


----------



## bygones (16. Nov 2005)

dann über den key das set holen, den alten wert löschen und neuen hinzufügen. Aber auch hier kannst du nicht auf die Reihenfolge dich verlassen...


----------



## Bleiglanz (16. Nov 2005)

ach so 

mal zur klarstellung: ein HashSet hat keine Reihenfolge, in welcher Reihenfolge ein Iterator da durchgeht ist mehr oder weniger Zufall! 

Also ist dein Problem in der Form unlösbar

warum nimmst du keine List?


----------



## bygones (16. Nov 2005)

es gibt zwar das LinkedHashSet, die die Reihenfolge sich speichert, aber auch da wird nix mit den einen wert durch den anderen ersetzen....


----------

