将对象添加到多个列表/映射

时间:2013-11-20 17:05:32

标签: java object arraylist

ArrayList<SomeObject> listSomeObject;
HashMap<String, SomeObject> hmSomeObject;

SomeObject so = new SomeObject();
listSomeObject.add(so);
hmSomeObject.put("key", so);

hmSomeObject.get("key").setSomeProp(5);

最后设置操作是否会更改ArrayList的元素;真的只有一个对象吗?换句话说:

listSomeObject.get(0).getSomeProp()

这会返回5吗?

3 个答案:

答案 0 :(得分:2)

简答:是的。

答案很长:是的!

真的很长的回答:你为什么不尝试一下,发现它确实回来了5?

答案 1 :(得分:1)

只有一个名为so的对象,由map和list引用(引用)。因此,通过任何引用对so所做的任何更改都随处可见。

所以回答是肯定的。

答案 2 :(得分:0)

是。这是因为对值的引用,而不是值本身。无论是将引用放在列表,映射还是其他内容中,您仍将修改相同的值。