2016-08-28 2 views
0

Я новичок в программировании на Java и затрудняюсь понять концепцию цикла через список объектов в Java.Java Iterate через список объектов

записи Входные данные имеют вид:

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| 

ACCESSING список объектов может быть сделано с:

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| 

Понятно, что в случае 1 данные 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(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() 
} 
Смежные вопросы