У меня есть несколько объектов, которые включают вложенные списки. Обычно я использую вложенные циклы 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