如何将字符串附加到HashMap元素?

时间:2011-03-24 14:05:20

标签: java hashmap

我在java中有一个hashmap,我需要在一个特定的键上附加一个字符串。这段代码是否正确?或者,调用.get方法检索原始内容不是一个好习惯吗?

myMap.put("key", myMap.get("key") + "new content") ;

感谢

3 个答案:

答案 0 :(得分:13)

如果您的意思是想用新值替换当前值,那绝对没问题。

请注意,如果密钥不存在,您最终会将“nullnew content”作为新值,这可能不是您想要的。您可能想要这样做:

String existing = myMap.get("key");
String extraContent = "new content";
myMap.put("key", existing == null ? extraContent : existing + extraContent);

答案 1 :(得分:3)

  

我在java中有一个hashmap,我需要在一个特定的键上附加一个字符串。

您需要删除映射,并使用更新的密钥添加新映射。这可以在一行中完成,如下所示。

myMap.put(keyToUpdate + toAppend, myMap.remove(keyToUpdate));

Map.remove方法删除映射,并返回先前映射的值

答案 2 :(得分:1)

如果您经常这样做,您可能希望使用StringBuilder。

Map<String, StringBuilder> map = new LinkedHashMap<String, StringBuilder>();

StringBuilder sb = map.get(key);
if (sb == null)
   map.put(key, new StringBuilder(toAppend));
else
   sb.append(toAppend);