【发布时间】:2018-03-22 17:51:28
【问题描述】:
我有一个使用迭代器迭代的数组列表。迭代的数据作为参数传递给方法 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());
}
【问题讨论】:
-
问题是……?您希望列表中有唯一的对象,还是希望对象多次出现在列表中?
-
问题是它不应该覆盖第一个。我需要独一无二的
标签: java arraylist collections while-loop iterator