我是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(???);
}
答案 0 :(得分:0)
您的数据似乎是|
分隔的文本文件,每行最多8个值,因此您创建了一个类,例如名为DataSet
,有8个字段,然后创建一个用于存储行的列表,即List<DataSet>
。
然后,您可以使用增强的for语句循环列表:
for (DataSet dataSet : list) {
// now get values with calls like list.getName()
}