2016-08-28 9 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データカリフォルニア州

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

またはケース2で:n個にアクセスすることが私が作ることができる方法に

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

は私が混乱している「ループのための」オブジェクトのリストをループ内のすべてのこれらのケースをカバーするために、一般的な:

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

問題は私には不明です。最初のループを再利用しようとしましたか?何が悪かったのか? –

答えて

0

あなたのデータは、行あたり最大8つの値で、|区切られたテキストファイルのようですので、あなたは、例えば、クラスを作成しますDataSetと呼ばれ、8つのフィールドを持ち、行を格納するためのリスト、つまりList<DataSet>を作成します。

することはでき、ループ文の強化使ってリスト:

for (DataSet dataSet : list) { 
    // now get values with calls like list.getName() 
} 
関連する問題