функция get () для хеш-таблиц Java - PullRequest
16 голосов
/ 19 апреля 2009

Я объявил следующую хэш-карту:

HashMap<Integer, Hive> hives

Где Улей - это объект.

Если я назову "hives.get (2)", он вернет копию объекта Hive в этом месте или ссылку на него?

Моя цель - изменить объект Hive в этом месте. Если он возвращает ссылку, я могу просто изменить возвращенный улей и все готово. Однако, если копия будет возвращена, мне придется поместить ее обратно в хэш-карту.

Извините за простой вопрос. Я пытался найти решение, но везде, где я искал, просто говорилось, что значение будет возвращено, но не было указано, будет ли это копия значения или ссылка на него.

Спасибо, Zain

Ответы [ 3 ]

20 голосов
/ 19 апреля 2009

Возвращает ссылку. Вы можете в значительной степени предположить, что это так, если не указано иное.

8 голосов
/ 19 апреля 2009

Вы получите ссылку на него - объекты Java всегда передаются по ссылке.

5 голосов
/ 19 апреля 2009

в java все, кроме байтов, коротких, int, long, float, double и char, передается по ссылке вышеуказанные типы являются единственными примитивными типами в java и передаются по значению. Если вам нужна копия по значению, вам нужно создать собственный метод в объекте, который будет возвращать глубокую копию самого себя.

...