Как добавить строку в элемент HashMap?

У меня есть hashmap в java, и мне нужно добавить строку к одному определенному ключу. Это правильный код ? Или это не очень хорошая практика .получить метод для извлечения исходного содержимого ?

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

спасибо

3 ответов


Если вы хотите заменить текущее значение на новое значение, это абсолютно нормально.

просто имейте в виду, что если ключ не существует, вы получите "nullnew content" в качестве нового значения, которое может быть не тем, что вы хотели. Вы мая хочу:

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

у меня есть hashmap в java, и мне нужно добавить строку к одному определенному ключу.

вам нужно будет удалить сопоставление и добавить новое сопоставление с обновленным ключом. Это можно сделать в одной строке следующим образом.

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

на Map.remove метод удаляет сопоставление, и возвращает ранее отображенное значение


Если вы делаете это часто, вы можете использовать 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);