2014-12-30 17 views
6

Ich möchte den Wert in bestimmten Schlüssel in LinkedHashMap ersetzen.So ersetzen Sie den Wert in bestimmten Schlüssel in LinkedHashMap

zum Beispiel Die erste Bedingung ..

"key1" -> "value1" 
"key2" -> "value2" 
"key3" -> "value3" 
"key4" -> "value4" 
"key5" -> "value5" 

ich erwartete Ergebnis wollen ...

"key1" -> "value1" 
"key2" -> "value8" 
"key3" -> "value3" 
"key4" -> "value6" 
"key5" -> "value5" 

Antwort

14

Sie stellen einen neuen Wert für diesen Schlüssel:

map.put("key2","value8"); 
map.put("key4","value6"); 

Beachten Sie, dass für Ändern des Werts für einen vorhandenen Schlüssel das Iter nicht ändert Reihenfolge der Map (das ist die Reihenfolge, in der die Schlüssel zuerst in die Karte eingefügt wurden).

+1

Eigentlich können Sie wählen, ob Sie die LinkedHashMap Iteration in Einschub Ordnung oder den Zugang Ordnung – lbalazscs

+1

@lbalazscs Oh, du hast Recht wollen . Die Reihenfolge der Insertion ist die Standardeinstellung, aber es gibt einen Konstruktor, mit dem Sie diesen Standard überschreiben können. – Eran

2

In Map (LinkedHashMap) Schlüssel ist der eindeutige Wert. Wenn Sie also versuchen, einen Wert für einen Schlüssel zu setzen, fügt er entweder einen neuen Eintrag in der Karte hinzu oder wenn der Schlüssel bereits existiert, ersetzt er den alten Wert für diesen Schlüssel durch einen neuen Wert.

map.put("existing key", "new value"); 

Above-Code wird mit new value Wert von existing key in der Karte ersetzen.

2

Der richtige Weg, zu überprüfen, ob der Schlüssel vorhanden ist oder nicht:

if (map.containsKey(key)) { 
     map.put("existing key", "newValue"); 
    } 
Verwandte Themen