繁体   English   中英

如何使用arraylist复制另一个arraylist

[英]How to arraylist to copy another arraylist

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

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);
}

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

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

while(iterator.hasNext()){
    GelirList firstList = new GelirList();
    ....
}

你必须这样做,否则你总是在编辑相同的参考

有关 Java 在这方面如何工作的更多信息,我建议阅读另一篇文章: Java 是“按引用传递”还是“按值传递”?

由于GelirList是引用类型,因此更新相同的数据。 用这个:

while(iterator.hasNext()){
   GelirList firstList = new GelirList();
   //then the initialization
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM