簡體   English   中英

將對象添加到多個列表/地圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM