2

我有一个ArrayListwith 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;
4

3 回答 3

5

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

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

这是一个非通用版本;generictoArray(T[] a)让你避免演员阵容。

于 2013-06-16T16:52:07.750 回答
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);
}
于 2013-06-16T16:53:57.070 回答
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();
于 2013-06-16T17:17:57.327 回答