[英]How to create a copy of ArrayList<ArrayList<Arc>> to another ArrayList<ArrayList<Arc>>
[英]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.