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代码。--“…前面列表中的元素被压碎了。”-这是什么意思?