Java 对象的arraylist上的深度复制

Java 对象的arraylist上的深度复制,java,Java,我试图从全局arraylist中深度复制对象列表,并在返回函数中返回所有对象,如下所示 ArrayList<Objects> list = new ArrayList<Objects>(); public Objects copy() { Objects copied = new Objects(); ArrayList<Objects > newList = new ArrayList<Objects>();

我试图从全局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 list=new ArrayList();
公共对象复制(){
复制的对象=新对象();
ArrayList newList=新的ArrayList();
用于(对象对象对象:列表){
newList.add(objs);
}

对于(inti=0;i为什么不使用clone()呢?

您想返回所有3个值,但不想返回
ArrayList
?如果您返回
Objects
,它将仅是一个元素。那么您想返回什么?方法只能返回一件事。您不想返回列表的原因是什么?顺便说一句,您正在进行浅拷贝。深拷贝创建新对象。Y您只需返回最后一个,因为您迭代整个列表,并始终将当前项存储在
复制的
中。这并不是“深度复制”。检索源列表的最后一个元素是一种非常昂贵的方法。