如何控制嵌套ArrayLists的结构

时间:2013-12-06 07:20:04

标签: java arraylist

我使用CSVOpenCSV文件读入名为ArrayList<String[]>的{​​{1}}。这符合预期,因此文件的每一行都在myCSVEntriesString[]

现在我想从myCSVEntries中提取某些行,并以特定的方式将它们分组到一个名为myCSVEntries的新变量中。这个想法是这样的:假设文件有某些属于组1的行,有些属于组2,有些其他行不属于组。例如,每组有2行(即两个myGroupedEntries)。

最终我希望能够访问元素:

String[]

我已将myGroupedEntries.get(ith group.get(nth line.get(kth item in line))声明为ArrayList&gt;。在处理过程中,我使用myGroupedEntries声明为tempArrayArrayList<String[]>收集第1组的相关行。

完成后,我会申请tempArray

然后我将myGroupedEntries.add(tempArray)重置为新的,然后重新开始,但现在用第2组元素填充它。完成后,我再次申请tempArray

但是,myGroupedEntries.add(tempArray)具有类似

的结构

myGroupedEntries

myGroupedEntrie

相反,它的结构更像是

myGroupedEntries

  - Group1
      - group1 line 1
      - group1 line 2
  - Group2
      - group2 line 1
      - group2 line 2

我猜测添加 - Group1 - group1 line 1 - Group2 - group1 line 2 - Group3 - group2 line 1 - Group4 - group2 line 2 声明为tempArray会导致这种情况,但我无法看到我正在尝试获取我正在尝试的结构。

......甚至不确定这是否可行。

任何建议都将不胜感激

代码看起来有点像

ArrayList<String[]>

1 个答案:

答案 0 :(得分:1)

您的最终测试

if( tempArrList.size() != 0 )
{
        myGroupedEntries.add(tempArrList);

        tempArrList = new ArrayList<String[]>();
} 

应该在主for循环之外。现在,只要将任何内容添加到tempArrList,就会执行它,从而创建您正在获得的结果。