【发布时间】:2014-03-20 21:11:14
【问题描述】:
我有两个列表,我遍历一个列表并尝试匹配一些项目,然后用另一个列表替换一个列表的内容。
public static void setLtItems(List<ItmResponse> list1, List<ItmResponse> list2){
ListIterator<ItmResponse> list1Iterator = list1.listIterator();
while (list1Iterator.hasNext()) {
ItmResponse a= list1Iterator.next();
for (ItmResponse b : list2) {
if (a.getOrgTransNo().equalsIgnoreCase(b.getOrgTransNo())) {
// replace the item in list1 with the list2 item
list1Iterator.set(b);
}
}
上面的代码工作正常,但是如果列表 2 中还有一个项目与 list1 中的一个项目匹配,但该项目未添加到 list1,因为 list1 仅包含 1 个项目,而列表有 2 个项目与 list1 项目匹配。因此,在替换 list1 中 list2 的第一项后,我必须将 list 2 的第二项添加到 list1 作为第二项。在java中如何做到这一点?
【问题讨论】:
-
所以第一次使用
set,然后使用add? -
是的,但
while (list1Iterator.hasNext())将只有一个元素。这就是问题所在。 -
看我的回答,如果我理解正确的话,这应该可以工作
标签: java list iteration addition