java hashmaps的get()函数

时间:2009-04-19 04:35:38

标签: java object reference hashmap

我已经声明了以下hashmap:

HashMap<Integer, Hive> hives

Hive是一个对象。

如果我调用“hives.get(2)”,它会在该位置返回对象Hive的副本还是对它的引用?

我的目标是修改该位置的Hive对象。如果它返回引用,我可以修改返回的配置单元并完成。但是,如果返回一个副本,那么我将不得不将该副本放回到hashmap中。

抱歉这个简单的问题。我试着四处寻找解决方案,但是我看到它的任何地方都只是说会返回值,它没有说它是值的副本还是对它的引用。

谢谢, 扎因

3 个答案:

答案 0 :(得分:20)

它返回一个引用。除非另有说明,否则你几乎可以认为是这种情况。

答案 1 :(得分:8)

您将获得对它的引用 - Java对象始终通过引用传递。

答案 2 :(得分:5)

在java中除了byte,short,int,long,float,double和char之外的所有内容都通过引用传递。以上类型是java中唯一的原始类型,并按值传递。如果你想要按值复制,你需要在对象中创建自己的方法,返回自身的深层副本。