将ArrayList<Object[]>转换为Object[][]

5
在Java中,我该如何将一个包含数组的ArrayList转换为一个二维数组?
示例:
ArrayList<String[]> results = new ArrayList<String[]>();
String [] columns = {a few strings};


JTable table = new JTable(results.toArray(), columns);

我收到一个错误,提示JTable(Object[], Object[])未定义。
2个回答

16
List<T>.toArray(T[]) 方法可以完成这个任务。
例如:
List<String[]> list = ...
String[][] res = new String[list.size()][];
list.toArray(res);

或者
List<String[]> list = ...
Object[][] res = new Object[list.size()][];
list.toArray(res);

如果你使用这个重载而不是List<T>.toArray()重载,你可以选择实际的数组类型。这需要多写一行代码,但如果数组类型很重要,这是正确的方法。
List<T>.toArray()重载会给你一个实际类型为Object[]的数组...与列表的泛型类型或列表元素的实际类型无关。)

我明白了。我之前使用的是res = Object[],而不是Object[][]. 谢谢!(是的,OP中的代码是之前的版本。) - yodie
非常感谢!<3 - Alexis Coquard

3
在这种情况下,array.toArray()就可以解决问题了。

@yodie - 请看我的答案,这是一个更好的解决方案。 - Stephen C
@Stephen C -- 完成了!只用了几秒钟进行了评论,另外三分钟接受了! - yodie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接