2014-02-22 49 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'中。 –

回答