Замените расширенные циклы for над вложенными списками потоками.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Замените расширенные циклы for над вложенными списками потоками.

Сообщение Anonymous »

У меня есть несколько объектов, которые включают вложенные списки. Обычно я использую вложенные циклы for для выполнения любых преобразований, но мне очень хочется изучить потоки Java 8. По сути, я пытаюсь создать выходной объект, который будет состоять из полей, доступных в каждом вложенном списке.
Ниже я поделился очень простым примером и тем, как я обычно его использую. out с улучшенными циклами for. Может ли кто-нибудь поделиться со мной, как мне следует делать эти потоки? Кроме того, если бы мы предположили, что некоторые из этих списков будут иметь мощность [0:M], т. е. они являются необязательными списками, как бы я сделал поток нулевым?
// Objects below
class Qualification {
String qualificationName;
String qualificationValue;
}

class Person {
String name;
List qualifications;
}

class Group {
String groupId;
List
people;
}

class Output {
String groupId;
String name;
String qualificationName;
String qualificationValue;
}

Ниже показано, как я обычно выполняю это преобразование.
// Create empty list to hold the output objects
List outputList = new ArrayList();
for(Group g : groups) {

for (Person p : g.getPeople()) {

for (Qualification q : p.getQualifications()) {
// Compose new object and add to list

Output output = new Output();
output.setId(g.getId());
output.setName(p.getName());
output.setQualificationValue(q.getQualificationValue());
output.setQualificationName(q.getQualificationName());

outputList.add(output);
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/702 ... th-streams
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»