如何在LinkedHashMap中替换特定键的值

16

我想要替换LinkedHashMap中特定键的值。

例如,初始条件为...

"key1" -> "value1"
"key2" -> "value2"
"key3" -> "value3"
"key4" -> "value4"
"key5" -> "value5"
我希望得到预期的结果。
"key1" -> "value1"
"key2" -> "value8"
"key3" -> "value3"
"key4" -> "value6"
"key5" -> "value5"
3个回答

34
你为该键添加了一个新值:
map.put("key2","value8");
map.put("key4","value6");
请注意,对于LinkedHashMap,更改现有键的值不会更改Map的迭代顺序(即按照首次插入到地图中的键的顺序)。

4
实际上,你可以选择 LinkedHashMap 是按插入顺序或访问顺序进行迭代。 - lbalazscs
1
@lbalazscs 哦,你说得对。插入顺序是默认的,但有一个构造函数可以让你覆盖这个默认值。 - Eran

3
在Map(LinkedHashMap)中,键是唯一的值。因此,每当您尝试为键放置一个值时,它将在Map中添加新条目,或者如果该键已经存在,则将替换该键的旧值为新值。
map.put("existing key", "new value");

以上代码将使用新值替换地图中现有键的值。

1

检查键是否存在的正确方法:

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

OP并不是在询问如何检查键是否存在。使用put方法,如果键不存在,则会添加该键,如果键已经存在,则会替换该键的值。因此,在此之前无需检查键是否存在。 - Raid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接