2012-03-09 85 views
4

所以我想這樣的在Java中創建對象的列表

ArrayList<Obj> lst = new ArrayList<Obj>(10); 
for (int i = 0; i < 10; i++) { 
    Obj elem = new Obj(); 
    lst.add(elem); 
} 

創建對象的名單這是法律還是我擔心對象1得到搗毀當ELEM基準開始指向對象2?如果它是非法的,我該怎麼做呢?有沒有辦法自動生成十個不同的參考名稱?

+0

不,你只需要擔心對象1得到丟棄時,有沒有留下來的LST結構引用。 elem參考每次都是「新鮮」的。 – Adam 2012-03-09 23:52:31

+1

你在循環中的兩行也可以寫成'lst.add(new Obj());' – 2012-03-09 23:53:32

回答

5

垃圾收集器將只刪除對象。 在你的情況,你的名單將指向10名不同對象對象,他們是安全的,直到你失去了參考LST對象。

3

這是完全合法的。您的ArrayList將包含對剛剛創建的對象的引用,所以它不會被GCed。

1

你的做法是完全合法的。你將得到一個十個不同的對象的列表。當有指向它的引用