2014-09-30 148 views
-1

我有一个ArrayList由几个ArrayLists组成,都包含String元素。转换ArrayList <ArrayList <String>>“返回”ArrayList <String>

即,

ArrayList<ArrayList<String>> myListCollection = new ArrayList<ArrayList<String>>(); 

现在,是有办法myListCollection转换为仅包含字符串元素的ArrayList?

谢谢!

编辑

我已经写了几种方法添加字符串到列表中。然后,每个列表添加到“superlist”,类型:

ArrayList<ArrayList<String>> 

看到这是因为现在是列表的集合,又包含单字符串元素,我想知道是否有可能改变我的“超级列表”到包含所有字符串元素的列表中,而不是包含其他带有字符串元素的列表元素的列表。

例如,从“超级列表”中检索一个元素给了我一个完整的列表,而我想访问单个元素。

我想我可以使用嵌套的for循环的子列表中检索元素,用下面的代码:

for(int i = 0; i < superlist.size(); i++) { 
     for(int j = 0; j < superlist.get(i).size(); j++) { 
      System.out.println(superlist.get(i).get(j)); 
     } 
    } 

这是适当/正确/体面的代码?

+0

是的。请显示您迄今为止的任何代码尝试,以及您遇到的任何问题;一个解决方案不会在这里给出。 – rgettman 2014-09-30 18:16:36

+0

你的意思是扁平化吗? – 2014-09-30 18:16:42

回答

4

是的,你可以,这样的事情:

ArrayList<String> stringCollection = new ArrayList<String>(); 
for (int i = 0; i < myListCollection.size(); ++i) { 
stringCollection.addAll(myListCollection.get(i)); 
} 

希望它为你工作:)。

+0

它确实帮助我!非常感谢:) – northerner 2014-09-30 18:28:46

+1

请注意,您通常希望使用定义列表 coll = new ArrayList ()'或甚至更好'Collection coll'。这将允许您轻松地更改实现,例如,如果您只需要不同的字符串(然后可以设置'coll = new HashSet ()',那么您就完成了 – AlexR 2014-09-30 18:30:26

相关问题