[英]Adding an Object to multiple lists/maps
ArrayList<SomeObject> listSomeObject;
HashMap<String, SomeObject> hmSomeObject;
SomeObject so = new SomeObject();
listSomeObject.add(so);
hmSomeObject.put("key", so);
hmSomeObject.get("key").setSomeProp(5);
最后的set操作是否也會更改ArrayList的元素; 真的只有一個物體嗎? 換一種說法:
listSomeObject.get(0).getSomeProp()
這會返回5嗎?
簡短的回答:是的。
長答案:是的!
答案很長:您為什么不嘗試一下,發現確實返回5?
只有一個名為so
對象,它由map和list引用(引用)。 因此so
通過任何引用進行的任何更改都隨處可見。
所以答案是肯定的。
是。 這是因為它是對值的引用,而不是值本身。 無論您將參考放置在列表,地圖還是其他位置,您都將修改相同的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.