【发布时间】:2016-08-28 14:09:05
【问题描述】:
我是 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);
或者在case2中:
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(???);
}
【问题讨论】:
-
我不清楚这个问题。您是否尝试过仅重用您的第一个循环?出了什么问题?