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吗?
答案 0 :(得分:2)
简答:是的。
答案很长:是的!
真的很长的回答:你为什么不尝试一下,发现它确实回来了5?
答案 1 :(得分:1)
只有一个名为so
的对象,由map和list引用(引用)。因此,通过任何引用对so
所做的任何更改都随处可见。
所以回答是肯定的。
答案 2 :(得分:0)
是。这是因为对值的引用,而不是值本身。无论是将引用放在列表,映射还是其他内容中,您仍将修改相同的值。