2016-11-08 81 views
3

如何使用一維二維ArrayList填充一維ArrayList?我曾嘗試與下面的代碼:使用一維二維ArrayList填充一維Arraylist

public static List<List<Float>> matrix = new ArrayList<>(); 

public static void buildMatrix(List<String> URLList, List<String> headerList) 
{ 

    // DO SOME STUFF 

    List<Float> tempArrayList = new ArrayList<>(); 
    tempArrayList.add(matrix.get(matrix.size())); 

} 

我得到了一個錯誤: 「列表不能適用」

回答

4

呼叫List#addAll(Collection<? extends E> c)爲的List

List<Float> tempArrayList = new ArrayList<>(); 
for (List<Float> list : matrix) { 
    tempArrayList.addAll(list); 
} 

每一個元素如果使用的Java 8,這可以通過Stream API完成,更具體地說與方法Stream#flatMap(Function<? super T,? extends Stream<? extends R>> mapper)作爲下一步:

List<Float> tempArrayList = matrix.stream() 
    .flatMap(List::stream) 
    .collect(Collectors.toList()); 
+1

謝謝尼古拉斯,它的工作原理! – Gabriel