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

2022-09-02 12:43:17

我有一个这样的列表:

List<MyObject[]> list= new LinkedList<MyObject[]>();

和对象像这样:

MyObject[][] myMatrix;

如何将“列表”分配给“myMatrix”?

我不想循环访问列表并将元素逐个元素分配给MyMatrix,但我想在可能的情况下直接分配它(通过oppurtune修改)。谢谢


答案 1

您可以使用 .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);
    }   
}

Javadoc


答案 2

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

// 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));

在ideone上试用