我有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;
答案 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();