[英]Java how to remove an object from one ArrayList while adding it to another?
[英]adding arraylist object in iterator while loop causes second object to over write one object
我有一個使用迭代器迭代的數組列表。 迭代數據作為參數傳遞給方法 getDetails。 現在方法返回的數據被寫入一個arraylist detailsList。 因此,如果 arraylist DTOList 有兩個不同的對象,則第二個對象會覆蓋第一個對象。 所以當我閱讀列表時,它有兩個相同的對象內容。
List < BRType > detailsList= new ArrayList < BRType > ();
List < RDTO > rDTOList = crList;
List < ADTO > aDTOList = daList;
Iterator < RDTO > rDTOIterator = rDTOList.iterator();
Iterator < ADTO > aDTOIterator = aDTOList.iterator();
while (rDTOIterator.hasNext() && aDTOIterator.hasNext()) {
RDTO rDTO = rDTOIterator.next();
ADTO aDTO = aDTOIterator.next();
detailsList.add(getDetails(rDTO , aDTO , bookingRuleType,null));
}
在第一個 while 循環中, detailsList 的代碼為 1 ,第二次運行時它的代碼為 2 。 所以當我運行下面的代碼時,我得到 2 和 2
for(BRType d : detailsList){
System.out.println(d.getCode());
}
我知道了!!! 這是一個小錯誤。 在這個方法調用中
getMarCancelPolicyDepositRuleBySWCancelPolicyDepositRule(cancelDepositRuleDTO, cancelDepositAmountDTO, bookingRuleType,null)
該方法的bookingRuleType
參數,該對象引用是在 while 循環之外創建的。 所以我把這個BookingRuleType bookingRuleType = new BookingRuleType();
在 while 循環中,它的作用就像魅力一樣
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.