2014-02-17 52 views
3

如果我有一個MyClass的實例,我們稱之爲myElement,然後將它添加到兩個列表,隊列或地圖或任何其他地方。它會在內存中保存多少次?爲兩個不同集合中的元素保留了多少個實例?

MyClass myElement = new MyClass(); 

List<MyClass> list1 = new ArrayList<MyClass>(); 
PriorityQueue<MyClass> queue1 = new PriorityQueue<MyClass>(); 

list1.add(myElement); 
queue1.add(myElement); 

我將它只保存一次,兩個列表元素都指向內存中的那個位置嗎?或者我會保存兩次?

+3

只有一個實例。您正在爲每個列表添加一個引用。 – crush

回答

7

無論您添加多少個列表,只有一個實例。

總之也是一樣。所以只有一個。

0

你正在推動這個類的參考。無論你在哪裏,它都會指向相同的內存位置。

只有單個實例存在。

相關問題