Как добавить строку в элемент HashMap? - PullRequest
6 голосов
/ 24 марта 2011

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

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

спасибо

Ответы [ 3 ]

13 голосов
/ 24 марта 2011

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

Просто имейте в виду, что если ключ не существует, вы получите «нулевое содержимое»как новое значение, которое может оказаться не тем, что вы хотели.Вы можете хотите сделать:

String existing = myMap.get("key");
String extraContent = "new content";
myMap.put("key", existing == null ? extraContent : existing + extraContent);
3 голосов
/ 24 марта 2011

У меня есть хэш-карта в Java, и мне нужно добавить строку к одному конкретному ключу.

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

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

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

1 голос
/ 24 марта 2011

Если вы делаете это часто, вы можете использовать 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...