首页 > 解决方案 > 如何将arraylist复制到另一个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}

标签: java

解决方案


因为GelirList是引用类型,所以更新相同的数据。用这个:

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

推荐阅读