ArrayList <ArrayList <String >>到String [] []

Bru*_*ter 3 java swing jtable

它看起来像JTable构造喜欢String[][]...但我喜欢使用更智能的容器,直到我必须使用其他东西.一直在使用ArrayList<ArrayList<String>>,现在我需要JTable开心String[][].

我找到了一种简单的方法来转换ArrayList<String>String[]使用toArray(),但没有找到多维数组的简易转换器.

我想从去ArrayList<ArrayList<String>>String[][]的行数最少的.

我一直在搜索图书馆,似乎无法找到这个转换器,并希望有人可以建议一个很好的解决方案.

提前致谢.

Rob*_*ani 7

ArrayList<ArrayList<String>>在记忆中并不连续.这是第二个数组列表存储对ArrayList<String>s 的引用数组,并且在每个ArrayLists中,可以有一个大于您放入其中的项目数量的数组.

因此,唯一真正的方法是迭代:

ArrayList<ArrayList<String>> data;

//...

String[][] converted = new String[data.size()][];
for (int i = 0; i < converted.length; i++)
    converted[i] = data.get(i).toArray(new String[data.get(i).size()]);
Run Code Online (Sandbox Code Playgroud)

  • +1另一种方式是:`converted [i] = new String [data.get(i).size()];` - `data.get(i).toArray(converted [i]);` (2认同)

小智 6

您可能希望了解如何实现自己的表模型: JTable(TableModel dm)

您可以创建一个扩展AbstractTableModel的类,并将其委托给List或任何其他合适的数据结构.