Пройти по списку в списке и вернуть другой список в Stream API
Есть класс MembersGroup с полями (String groupName, List members) и в нем класс Member с полями(String name, Integer age). Если что, к каждому полю соответственно есть геттеры для связи с остальными классами. Работа должна производиться в другом классе в спешл методе
Set<String> findOldMembers(List<MembersGroup> groups, int targetAge)
где groups это группы, а targetAge - некоторое значение возраста Надо при помощи Stream API вывести в новый список имена тех memberов, которые старше targetAge.
Не совсем понимаю, как это сделать. Тут мой план действий, но не знаю, верный он или нет, а если да, то как это объединить все?
Что надо сделать?
1. Пройтись по списку групп groups grous.stream()
2. Пройтись по списку людей в группах members members.stream()
3. Отфильтровать member-ов по getAge .filter(x -> x > targetAge) (чем-то дополнить)
4. Создать лист с getName оставшихся .getName().collect(Collectors.toList) (???)
5. Вернуть список
Ответы (1 шт):
Автор решения: Дмитрий
→ Ссылка
Set<String> findOldMembers(List<MembersGroup> groups, int targetAge){
return groups.stream()
.flatMap(t->t.getMembers().stream())
.filter(m->m.getAge()>targetAge)
.map(m->m.getName())
.collect(Collectors.toSet());
}