我有一个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 :(得分:2)
喜欢这个
tmp.remove(Collections.singleton(null));
for(ArrayList<MyProduct> list : tmp){
lstStyle.addAll(list);
}
答案 1 :(得分:0)
使用addAll()
for(ArrayList<MyProduct> list : tmp) {
if(list!=null)
lstStyle.addAll(list);
}
}
答案 2 :(得分:0)
您似乎只想添加arraylist列表中的唯一元素。我建议当你迭代你的列表时,在null检查后从列表中获取所有元素并将其添加到最终集(例如hashset)。获得该集合(将包含所有arraylists中的唯一元素)后,将其转换回列表。