2014-09-30 185 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

相關問題