Почему не выводится результат foreach?
У меня проблема следующая - есть класс Person, у него есть List <Children.>. В классе Children есть int age. У меня есть List<Person.>, из которого хочу получить список всех детей которым больше 18 с помощью стрима. Но почему - то не вижу вывода в консоль. В foreach вижу, что age - это Integer, но вывода все-равно почему-то нет. Подскажите, пожалуйста, в чем моя ошибка?
public static class Person {
List<Children> children = new ArrayList<>();
String name;
Person(String name) {
this.name = name;
}
void addChild() {
children.add(new Children(3));
children.add(new Children(7));
children.add(new Children(18));
children.add(new Children(20));
children.add(new Children(30));
children.add(new Children(2));
}
}
public class Test {
public static void main(String[] args) {
Person person = new Person("Kris");
person.addChild();
List<Person> personList = new ArrayList<>();
personList.add(new Person("Mark"));
personList.stream().flatMap(person1 -> person1.children.stream().
filter(children -> children.age > 17)
).map(children -> children.age)
.forEach(age -> System.out.println(age));
}
}
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
Person person = new Person("Kris");
person.addChild();
List<Person> personList = new ArrayList<>();
personList.add(new Person("Mark"));
personList.add(person); // <-- !!!