2014-02-22 134 views
0

我從一個全球性的ArrayList試圖對象的深層副本列表,並在我的迴歸函數返回的所有對象如下深拷貝的對象

ArrayList<Objects> list = new ArrayList<Objects>(); 

public Objects copy() { 
     Objects copied = new Objects(); 
     ArrayList<Objects > newList = new ArrayList<Objects>(); 
     for(Objects objs : list){ 
      newList.add(objs); 
     } 
     for(int i=0; i<newList.size(); i++){ 
      copied = newList.get(i); 
     } 
     return copied; 
    } 

的ArrayList中,但該功能只返回在最後一個元素列表。我如何使函數返回所有值?例如,如果全局列表中有3個對象,我的函數應該返回所有3個值。

此外,我不希望我的函數的返回類型是一個ArrayList<Objects>即我不想返回對象的ArrayList

這可能嗎?如果是的話我錯過了什麼?

+1

你想返回所有3個值,但你不想返回'ArrayList '?如果你返回'Objects',它只會是一個元素。那麼,你想要返回哪些**呢? – ajb

+0

一種方法只能返回一件事。你不想返回列表的原因是什麼?順便說一句,你在做一個淺拷貝。深層複製創建新對象。 – Radiodef

+0

您只需返回最後一個,因爲您遍歷整個列表並始終將當前項存儲在'copied'中。 –

回答