о функции HashMap.get(key)

Если я вытащу объект из своего HashMap, а затем изменю его. Будет ли он также изменяться внутри HashMap? Или мне нужно снова установить его на HashMap после его изменения?

Например:

HashMap<Integer,TwoPoints> loc = new HashMap<Integer,TwoPoints>();
...
...
TwoPoints tp = loc.get(Id); //pulls out the object
tp.setPoint(group, new Point(x,y); //a method to set something inside the object I pulled.

person NucS    schedule 02.07.2012    source источник
comment
Попробуй и увидишь....   -  person duffymo    schedule 02.07.2012


Ответы (1)


Вы получаете ссылку на фактический объект, поэтому любые изменения будут отражены в нем. Вы не создаете копию.

Обновление:

Поскольку я использовал термин «ссылка», я подумал, что важно указать на определение. Под капотом Java все не так просто. Но ссылка (то, что вы делаете) получает значение указателя на объект.

person Chris Dargis    schedule 02.07.2012
comment
То же самое применимо и во всех других случаях: извлечение объекта из массива или других типов коллекций, передача объекта в метод, наличие нескольких переменных, указывающих на один и тот же объект, и так далее. - person Thilo; 02.07.2012