3

它看起来像JTable构造喜欢String[][]......但我喜欢使用更智能的容器,直到我不得不使用其他东西。一直在使用ArrayList<ArrayList<String>>,现在我需要让我JTable满意String[][]

我找到了一种将 an 转换ArrayList<String>String[]using的真正简单方法toArray(),但没有找到用于多维数组的简单转换器。

我想以最少的行数从ArrayList<ArrayList<String>>到。String[][]

我一直在搜索图书馆,似乎找不到这个转换器,希望有人能为此提出一个好的解决方案。

提前致谢。

4

2 回答 2

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()]);
于 2012-05-15T03:06:15.413 回答
6

你可能想看看实现你自己的表模型: JTable(TableModel dm)

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

于 2012-05-15T03:18:23.010 回答