2013-11-27 2 views
1

У меня есть объект ArrayList, заполненный несколькими объектами ArrayList. Некоторые записи: null и я хочу поместить только значения не null ArrayLists в одном ArrayList. Я говорю о чем-то вроде ниже.Заполнение списка массивов из откликов некоторых других списков массивов.

{null,[p1,p2,p3],[p2,p5,p6],[p4]} 

И в качестве окончательного необходимого предмета это нечто подобное.

[p1,p2,p3,p2,p5,p6,p4] 

ArrayList объект ArrayList объектов создается из hash map object. Мой сегмент кода выглядит следующим образом. Но с этим что-то не так.

Collection<ArrayList<MyProduct>> tmp = new ArrayList<ArrayList<MyProduct>>(); 

      tmp= orderAdap.values(); 

      ArrayList<MyProduct> flattenList = new ArrayList<MyProduct>(); 
      for(ArrayList<MyProduct> list : tmp){ 
       for(MyProduct i : list) 

        if(i!=null){ 
        lstStyle.add(i); 
        } 
      } 

Так может кто-то мне помочь. Спасибо!!!!!

+0

«Но с этим что-то не так» ... пожалуйста, будьте более конкретными. Вы пытаетесь добавить элементы в 'flattenList'? –

+0

Наконец-то хочу добавить в ArrayList. –

+0

Не могли бы вы рассказать нам, что происходит с выходом, есть ли какая-нибудь ошибка? –

ответ

2

нравится этот

tmp.remove(Collections.singleton(null)); 
for(ArrayList<MyProduct> list : tmp){   
    lstStyle.addAll(list); 
} 
0

Использование addAll()

for(ArrayList<MyProduct> list : tmp) { 
    if(list!=null) 
     lstStyle.addAll(list); 
    } 
} 
0

Кажется, вы пытаетесь добавить только уникальные элементы из ваших списков ArrayList. Я бы предположил, что когда вы повторяете свои списки, после нулевой проверки вы получите все элементы из списка и добавьте их в окончательный набор (например, hashset). Как только вы получите набор (который будет содержать уникальные элементы из всех аррайалистов), переведите его обратно в список.

Смежные вопросы