Java迭代对象列表

时间:2016-08-28 14:09:06

标签: java list loops object

我是Java编程的初学者,很难理解Java中对象列表的循环概念。

输入数据记录的格式如下:

    TestDataSet1 |4|01-category1|100|43|||
    TestDataSet2 |4|02-category2|10044307001|0|100|2016-07-20 21:36:00|
    TestDataSet3 |4|03-category3|104331|
    TestDataSet4 |5|04-category4|100|2016-07-20 21:36:00|
    TestDataSet5 |4|01-category1|100|43|||
    TestDataSet3 |4|03-category3|104331|

为了在我的程序中根据类别读取上述记录数据,为每个类别创建了对象列表:

List<Object> category1Orcategory2OrCategory3OrCategory4;

如果输入数据的格式为

TestDataSet1 |4|01-category1|100|43|||
TestDataSet2 |4|02-category2|10044307001|0|100|2016-07-20 21:36:00|
TestDataSet3 |4|03-category3|104331|
TestDataSet4 |4|04-category4|100|2016-07-20 21:36:00|

访问对象列表可以通过以下方式完成:

 Category1 - object.getcategory1Orcategory2OrCategory3OrCategory4().get(0);
 Category2 - object.getcategory1Orcategory2OrCategory3OrCategory4().get(1);
 Category3 - object.getcategory1Orcategory2OrCategory3OrCategory4().get(2);
 Category4 - object.getcategory1Orcategory2OrCategory3OrCategory4().get(3);

因此,循环可以完成:

 for(int index=0 ; index = list.size(); index++){
 object.getcategory1Orcategory2OrCategory3OrCategory4().get(index);
 }

但有时候,某些类别数据会丢失,输入结果如下:

case1: 
TestDataSet1 |4|01-category1|100|43|||
TestDataSet3 |4|03-category3|104331|
TestDataSet4 |5|04-category4|100|2016-07-20 21:36:00|

case2:
TestDataSet1 |4|01-category1|100|43|||
TestDataSet3 |4|02-category2|104331|
TestDataSet4 |5|04-category4|100|2016-07-20 21:36:00|

可以理解的是,在case1中可以访问数据:

 Category1 - object.getcategory1Orcategory2OrCategory3OrCategory4().get(0);
 Category3 - object.getcategory1Orcategory2OrCategory3OrCategory4().get(1);
 Category4 - object.getcategory1Orcategory2OrCategory3OrCategory4().get(2);

或案例2:

 Category1 - object.getcategor1Orcategory2OrCategory3OrCategory4().get(0);
 Category2 - object.getcategory1Orcategory2OrCategory3OrCategory4().get(1);
 Category4 - object.getcategory1Orcategory2OrCategory3OrCategory4().get(2);

我很困惑如何制作“循环”#39;通用以涵盖循环对象列表中的所有这些情况:

 for(int index=0 ; index = list.size(); index++){
 object.getcategory1Orcategory2OrCategory3OrCategory4().get(???);
 }

1 个答案:

答案 0 :(得分:0)

您的数据似乎是|分隔的文本文件,每行最多8个值,因此您创建了一个类,例如名为DataSet,有8个字段,然后创建一个用于存储行的列表,即List<DataSet>

然后,您可以使用增强的for语句循环列表:

for (DataSet dataSet : list) {
    // now get values with calls like list.getName()
}