Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何复制arraylist复制另一个arraylist_Java - Fatal编程技术网

Java 如何复制arraylist复制另一个arraylist

Java 如何复制arraylist复制另一个arraylist,java,Java,我想使用迭代器将数组添加到另一个数组列表中。但是在第一个列表的元素添加到第二个列表后,前一个列表的元素将被压碎。我如何防止这种情况 GelirList firsList = new GelirList(); List(GelirList) finalList = new ArrayList<>; Iterator<DvzGelir> iterator = input.getGelirlist().iterator(); while(iterator.hasNext(

我想使用迭代器将数组添加到另一个数组列表中。但是在第一个列表的元素添加到第二个列表后,前一个列表的元素将被压碎。我如何防止这种情况

GelirList firsList = new GelirList();
List(GelirList) finalList =  new ArrayList<>;

Iterator<DvzGelir> iterator = input.getGelirlist().iterator();

while(iterator.hasNext()){
DvzGelir exList = (DvzGelir) iterator.next()

firstList.setName(exList.getName());
firstList.setNumber(exList.getNumber());

finalList.add(firstList);
}
GelirList firrslist=new GelirList();
List(GelirList)finalList=newarraylist;
迭代器迭代器=input.getGelirlist().Iterator();
while(iterator.hasNext()){
DvzGelir exList=(DvzGelir)迭代器
setName(exList.getName());
setNumber(exList.getNumber());
finalList.add(firstList);
}

我期望输出:{eren,123},{ezel,234},但实际输出是{eren,123},{eren,123}

您必须在每次循环迭代中初始化
firstList
,而不是在循环外声明一次:

while(iterator.hasNext()){
    GelirList firstList = new GelirList();
    ....
}
你必须这样做,否则你总是在编辑同一个引用


有关Java在这方面如何工作的更多信息,我建议阅读另一篇文章:

,因为
GelirList
是一种引用类型,所以相同的数据会得到更新。使用以下命令:

while(iterator.hasNext()){
   GelirList firstList = new GelirList();
   //then the initialization
}
List(GelirList)finalList=newarraylist-这不是有效的Java代码。--“…前面列表中的元素被压碎了。”-这是什么意思?