2014-02-20 1 views
0

У меня есть два списка, в которых я повторяю один список и пытаюсь сопоставить некоторые элементы, а затем заменять содержимое одного списка другим.Как я могу добавить этот список в java?

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, потому что песни1 содержит только один элемент и список имеет 2 пунктов, который соответствует с list1 пункт. Поэтому после замены 1-го элемента списка2 в списке1 я должен добавить второй элемент списка 2 в список1 как второй элемент. Как это сделать в java?

+0

так первый раз, когда вы используете 'набор 'а затем после этого использовать' add'? –

+0

Ya but 'while (list1Iterator.hasNext())' будет иметь только один элемент. Это проблема. – coderman

+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

Рассортируйте list1and песни2 с помощью OrgTransNo будет работать

объявление, если значения содержит в list1 добавить LIST1 без набора ...

+0

Если ваш список не отсортирован, как вы можете предположить, что второй элемент list2 совпадает с первым элементом списка2. – Charitha