它看起来像JTable
构造喜欢String[][]
...但我喜欢使用更智能的容器,直到我必须使用其他东西。一直在使用ArrayList<ArrayList<String>>
,现在我需要让JTable
满意String[][]
。
我找到了一种使用ArrayList<String>
将String[]
转换为toArray()
的简单方法,但没有找到多维数组的简易转换器。
我想以最少的数量从ArrayList<ArrayList<String>>
到String[][]
。
我一直在搜索图书馆,似乎无法找到这个转换器,并希望有人可以建议一个很好的解决方案。
提前致谢。
您可能希望了解如何实现自己的表模型:JTable(TableModel dm)
您可以创建一个扩展AbstractTableModel的类,并将其委托给List或任何其他合适的数据结构。
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()]);