【问题标题】:Convert ArrayList<Object[]> to Object[][]将 ArrayList<Object[]> 转换为 Object[][]
【发布时间】:2010-12-07 00:51:34
【问题描述】:

如何在 Java 中将数组的 ArrayList 转换为二维数组?

例子:

ArrayList<String[]> results = new ArrayList<String[]>();
String [] columns = {a few strings};


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

我收到 JTable(Object[], Object[]) 未定义的错误。

【问题讨论】:

    标签: java arrays arraylist


    【解决方案1】:

    List&lt;T&gt;.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&lt;T&gt;.toArray() 重载,则可以选择数组的实际类型。它需要额外的一行代码,但如果数组类型很重要,这就是这样做的方法。

    (List&lt;T&gt;.toArray() 重载为您提供了一个实际类型为 Object[] 的数组...无论列表的泛型类型,或列表元素的实际类型.)

    【讨论】:

    • 我明白了。我使用 res = Object[] 而不是 Object[][]。谢谢! (是的,OP中的代码是以前的版本。)
    • 非常感谢!
    【解决方案2】:

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

    【讨论】:

    • @yodie - 查看我的答案以获得更好的解决方案。
    • @Stephen C -- 完成!评论只花了几秒钟,又花了三分钟接受!
    猜你喜欢
    • 2014-05-09
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    • 2014-05-16
    • 1970-01-01
    相关资源
    最近更新 更多