【问题标题】:Java Iterate through list of objectsJava遍历对象列表
【发布时间】: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(???);
 }

【问题讨论】:

  • 我不清楚这个问题。您是否尝试过仅重用您的第一个循环?出了什么问题?

标签: java list loops object


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 2011-08-19
    • 2018-05-08
    • 2015-03-17
    相关资源
    最近更新 更多