2013-11-27 111 views
1

我有一個ArrayList對象充滿了一些ArrayList對象。一些條目是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)。一旦你獲得了集合(將包含來自所有陣列列表的獨特元素),將其轉換回列表。