如何将带有Object []的ArrayList转换为Object [] []数组?

时间:2013-06-16 16:49:53

标签: java arrays arraylist

我有ArrayList Object[]个,我需要将ArrayList转换为Object[][]数组,以便将数据放入JTable }。我怎么能这样做?

我试过了:

(Object[][]) arraylist.toArray();

但是这给了:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [[Ljava.lang.Object;

3 个答案:

答案 0 :(得分:5)

您可以使用toArray,如下所示:

Object[][] array2d = (Object[][])arraylist.toArray(new Object[arraylist.size()][]);

这是一个非通用版本;通用toArray(T[] a)可以避免演员。

答案 1 :(得分:2)

尝试这个,一个考虑了可变长度数组的显式解决方案:

ArrayList<Object[]> input = new ArrayList<>();
Object[][] output = new Object[input.size()][];

for (int i = 0; i < input.size(); i++) {
    Object[] array = input.get(i);
    output[i] = new Object[array.length];
    System.arraycopy(array, 0, output[i], 0, array.length);
}

答案 2 :(得分:0)

    List<Object[]> list = new ArrayList();
    list.add(new Object[]{1,2,3});

    Object[][] objArray = new Object[list.size()][];
    for (int i=0;i<objArray.length;i++)
        objArray[i] = list.get(i).clone();