java:将数组列表转换为数组数组

Fil*_*ili 7 java arrays list multidimensional-array

我有一个这样的列表:

List<MyObject[]> list= new LinkedList<MyObject[]>();
Run Code Online (Sandbox Code Playgroud)

和像这样的对象:

MyObject[][] myMatrix;
Run Code Online (Sandbox Code Playgroud)

如何将"列表"分配给"myMatrix"?

我不想循环遍历列表并逐个元素地分配给MyMatrix,但是如果可能的话我想直接分配它(使用oppurtune修改).谢谢

Jer*_*emy 9

你可以用toArray(T[]).

import java.util.*;
public class Test{
    public static void main(String[] a){ 
        List<String[]> list=new ArrayList<String[]>();
        String[][] matrix=new String[list.size()][];
        matrix=list.toArray(matrix);
    }   
}
Run Code Online (Sandbox Code Playgroud)

的Javadoc


And*_*s_D 7

以下代码段显示了一个解决方案:

// create a linked list
List<String[]> arrays = new LinkedList<String[]>();

// add some trivial test data (note: arrays with different lengths)
arrays.add(new String[]{"a", "b", "c"});
arrays.add(new String[]{"d", "e", "f", "g"});

// convert the datastructure to a 2D array
String[][] matrix = arrays.toArray(new String[0][]);

// test output of the 2D array
for (String[] s:matrix)
  System.out.println(Arrays.toString(s));
Run Code Online (Sandbox Code Playgroud)

在ideone上试试