向数组添加不同长度的列表

时间:2014-01-10 15:33:54

标签: java arrays csv

我有一个数组,我向这个数组添加了几个列表。之后,我想在此数组中添加其他列,这些列的长度不同。

int minSize = Math.min(testList.get(j).getDate().size(), testList.get(j).getTotalReturnIndex().size());

List<String[]> data = new ArrayList<String[]>();
for(int m = 0; m < minSize; m++)
{
    //TODO remove .replace('.', ',')
    data.add(new String[] {testList.get(j).getCompanyName(), testList.get(j).getDate().get(m), testList.get(j).getCurrency(), testList.get(j).getTotalReturnIndex().get(m).toString().replace('.', ','), testList.get(j).getPrice().get(m).toString().replace('.', ','), "", sublist.get(m)});
    //here I am getting an `java.lang.IndexOutOfBoundsException:` because the list is not so long like the others
}

这就是我将第一部分(图片的前5列)添加到数组的方式。

在excel中可视化我的数组最终应该看起来像这样:

enter image description here

如何根据以上代码将其他3列添加到以sublist开头的数组中?

我非常感谢你的回答!

1 个答案:

答案 0 :(得分:1)

您可以尝试使用简单的三元组:

int minSize = Math.min(testList.get(j).getDate().size(), testList.get(j).getTotalReturnIndex().size());

List<String[]> data = new ArrayList<String[]>();
for(int m = 0; m < minSize; m++) {
    //TODO remove .replace('.', ',')
    data.add(new String[] {testList.get(j).getCompanyName(),
        testList.get(j).getDate().get(m), 
        testList.get(j).getCurrency(), 
        testList.get(j).getTotalReturnIndex().get(m).toString().replace('.', ','),
        testList.get(j).getPrice().get(m).toString().replace('.', ','),
        "", 
        (m < sublist.size())? sublist.get(m) : "" 
    });
}