如何在java中添加此列表?

时间:2014-02-20 05:38:54

标签: java list iteration addition

我有两个列表,我遍历一个列表并尝试匹配一些项目,然后将一个列表的内容替换为另一个列表。

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个项目,list列出了2个与list1项目匹配的项目。因此,在替换list1中list2的第1项之后,我必须将list2的第二项添加到list1作为第二项。如何在java中执行此操作?

2 个答案:

答案 0 :(得分:1)

尝试

while (list1Iterator.hasNext()) {
    boolean found = false;                 // new
    ItmResponse a= list1Iterator.next();
    for (ItmResponse b : list2) {
    if (a.getOrgTransNo().equalsIgnoreCase(b.getOrgTransNo())) {
       // replace the item in list1 with the list2 item

       if (!found) {
           list1Iterator.set(b); 
           found = true;
       } 
       else {
           list1Iterator.add(b); 
       }
    }
}

答案 1 :(得分:-1)

使用OrgTransNo对list1和list2进行排序

如果值包含在list1中,则广告添加到list1而不设置...