2016-08-28 163 views
0

我是Java编程的初学者,很难理解循环遍历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中数据ca

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); 

我很困惑我如何可以使“for循环”通用覆盖所有这些情况下,通过对象的列表循环:

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

的问题我不清楚。你是否尝试过重用你的第一个循环?什么地方出了错? –

回答

0

你的数据似乎是一个| - 分隔文本文件,每行最多8个值,所以你创建一个类,如称为DataSet,具有8个字段,然后创建用于存储行的列表,即List<DataSet>

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

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