2014-03-30 45 views
1

我想填充一个JTable与这样的cnstructor:转换的ArrayList <ArrayList的<Object>>为Object [] []

new JTable(datas, columns); 

所以我需要用于列的Object[]和用于DATAS一个Object[][]。 问题是当我尝试获取数据时。

在我的一种方法中,我使用ArrayList<ArrayList<Object>>工作,我想将其转换为Object[][]

这里是我的代码示例:

ArrayList<ArrayList<Object>> datas = new ArrayList<ArrayList<Object>>(); 

for (Map.Entry<Integer, JSObject> entry : params.entrySet()) { 
    datas.add(entry.getValue().getValues()); // getValues returns an ArrayList<Object> 
} 

return new datas.toArray(); // not seems to work 

我在这个问题Convert ArrayList<Object[]> to Object[][]一些想法所看到的,但我不知道结果。

在此先感谢!

+0

你为什么不使用'对象[] []'直接' datas'? –

+0

另外,'return new datas.toArray();'不是一个有效的语句('new'可能应该被删除) –

+0

,因为我从另一个对象中获得了params,但我试着使用'ArrayList',但我尝试了这个解决方案,让你知道是什么来自它...是的'新'没有什么可以做在这里,谢谢 – nobe4

回答

4

你就不能更改的datas类型的ArrayList<Object[]>,并且每次都使用toArray()你添加一个元素:

ArrayList<Object[]> datas = new ArrayList<Object[]>(); 
for (Map.Entry<Integer, JSObject> entry : params.entrySet()) { 
    datas.add(entry.getValue().getValues().toArray()); 
} 
return datas.toArray(new Object[][]{}); 
+0

我必须添加'(对象[] [])'来施放返回声明,但它似乎工作,我测试它让你知道 – nobe4

+0

@Nobe4:True,用另一个'toArray()'来代替,以防止需要投射。 – Keppil

+0

它的工作原理,谢谢=) – nobe4

相关问题