2015-07-23 3 views
1

Нужно ли удалить значение, а затем добавить или добавить его непосредственно в HashMap, и оно будет эффективно обновляться? т.е.Обновление HashMap в java

HashMap<String, String> person = new HashMap<String, String>(); 
person.add("name", "John"); 

Теперь, которая будет лучше/эффективный способ обновления выше ключевого значения:

а)

person.remove("name"); 
person.add("name", "jamy"); 

б)

person.add("name", "jamy"); 

или оба просто тоже самое ?

Это очень маленький пример. Учитывая большой HashMap, содержащий другие HashMaps, который будет лучшим вариантом и есть ли еще более эффективный способ сделать это?

+3

'HashMap' даже не имеет * метод' add'. Пожалуйста, сделайте некоторое исследование, прежде чем задавать вопросы, и если вы хотите знать, как что-то будет себя вести (метод 'put' в этом случае), вы должны попробовать и прочитать документацию. –

+0

Как сказал Джон ... на ваш вопрос ответил [HashMap Class JavaDoc] (https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html). Далее, объявите интерфейс, определите определение. 'Карта map = new HashMap <>();' –

ответ

2

Вы можете поместить новое значение. Он заменит старый. От javadoc:

Если карта ранее содержала отображение для ключа, старое значение заменяется.

Примечание что метод put, не add. add не метод Hashmap

Под редакцией: Я добавил ссылку ссылку на документацию, как отметил Наман гала.

+1

http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html#put%28K,%20V%29 –

0

Использование поместить метод, поскольку он заменит значение для данного ключа, если ключ EXIST, в противном случае она будет создавать новую запись

0

java.util.HashMap обеспечивает положил метод добавления ключа и объект пары в карте. Вам не нужно удалять объект, если вы хотите обновить объект HashMap. Он вернет предыдущий объект, если на карте есть один объект с тем же ключом. В противном случае он просто вернет null. Вам не нужно удалять его каждый раз. Просто используйте

java.util.HashMap.put(key, object);