2014-12-30 18 views
6

Chcę zastąpić wartość określonego klucza w LinkedHashMap.Jak zastąpić wartość określonego klucza w LinkedHashMap

np stanu początkowego ..

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

Chcę oczekiwanego rezultatu ...

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

Odpowiedz

14

umieścić nową wartość dla tego klucza:

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

Zauważ, że dla LinkedHashMap zmiana wartości dla istniejącego klucza nie zmieni iteracji kolejność wpisów Map (jest to kolejność, w której klucze zostały najpierw wstawione do mapy).

+1

Właściwie można wybrać, czy chcesz iteracji LinkedHashMap w wkładania-zlecenia lub dostępu rzędu – lbalazscs

+1

@lbalazscs Och, masz rację . Kolejność wstawiania jest domyślna, ale istnieje konstruktor, który pozwala na zastąpienie tej wartości domyślnej. – Eran

2

Klawisz Mapa (LinkedHashMap) to unikalna wartość. Tak więc za każdym razem, gdy spróbujesz wpisać wartość klucza, albo doda nowy wpis na mapie, albo klucz już istnieje, zastąpi starą wartość tego klucza nową wartością.

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

Powyższy kod zastąpi wartość existing key na mapie z new value.

2

Właściwym sposobem na sprawdzenie, czy klucz jest obecny czy nie:

if (map.containsKey(key)) { 
     map.put("existing key", "newValue"); 
    } 
Powiązane problemy