Функция get() для java-хэш-карт

Я объявил следующий хэш файл:

HashMap<Integer, Hive> hives

Где Hive - объект.

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

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

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

Спасибо, Zain

Ответ 1

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

Ответ 2

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

Ответ 3

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