2014-03-30 183 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

相關問題