将列表转换为数组。java.lang.ArrayStoreException

2022-09-02 10:38:03

有一个列表:

List<Integer[]> myList = new ArrayList<Integer[]>();

它包含一个 sigle 条目,但可能包含多个条目:

myList = [[2,null,1,null,null,3,6,1,1]]

我需要将此列表转换为数组,但由于空值,转换失败:Integer[][]

Integer[] myArr = myList.toArray(new Integer[myList.size()]);

如何解决这个问题?

编辑#1

我需要得到:

myArr = [2,null,1,null,null,3,6,1,1]

答案 1

试试这个(假设你实际上在你的评论中谈到了):List<Integer[]>

List<Integer[]> myList = new ArrayList<Integer[]>();
myList.add(new Integer[] {2,null,1,null,null,3,6,1,1} );

Integer[][] myArr = myList.toArray(new Integer[myList.size()][]);

如果将数组列表转换为数组,则将获得一个 2 维数组,因此您的参数也应该是一个。


答案 2

为我工作

    List<Integer[]> myList = new ArrayList<Integer[]>();

    Integer[] ia = {2,null,1,null,null,3,6,1,1};

    myList.add(ia);

    Integer[][] iaa = myList.toArray(new Integer[myList.size()][]);

    System.out.println(Arrays.deepToString(iaa));