[英]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.