Как добавить строку в элемент 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);