将两个单独的集转换为2D数组

时间:2012-08-24 10:20:07

标签: java swing collections jtable set

我有两组字符串,每种字符串都采用以下格式:

Set1(Names)  Set2(Sizes)

Pics         450 KB
Videos       50 MB
Music        32 MB

这两个集合是LinkedHashSets,因此保证了顺序。套装也保证尺寸相同。

我需要以上面的格式在JTable中显示这两个集合。当然,最简单的方法是创建一个2D数组,但我对每个数组的顺序感到困惑。

最好的方法是什么?理想情况下,它不需要迭代集合,但通常情况下,集合的大小小于10。

2 个答案:

答案 0 :(得分:2)

您无需创建2D数组 - 请参阅DefaultTableModel.addColumn。所以你可以使用:

JTable table = new JTable();
DefaultTableModel model = (DefaultTableModel)table.getModel();
model.addColumn("Names", s1.toArray(new String[0]));
model.addColumn("Sizes", s2.toArray(new String[0]));

很抱歉,如果语法略有偏离 - 现在不在IDE上。

答案 1 :(得分:1)

Set<String> namesSet = ...;
Set<String> sizesSet = ...;
String[] names = namesSet.toArray(new String[namesSet.size()]);
String[] sizes = sizesSet.toArray(new String[sizesSet.size()]);
String[][] namesAndSizes = {names, sizes};