Java 对象的arraylist上的深度复制
我试图从全局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<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您只需返回最后一个,因为您迭代整个列表,并始终将当前项存储在复制的
中。这并不是“深度复制”。检索源列表的最后一个元素是一种非常昂贵的方法。