Нужно отфильтровать пользователей, у которых хотя бы одна группа имеет имя с префиксом X. Для коллекции групп подходит anyMatch, после чего результат собирают в список.
// получить список пользователей которые состоят в группе начинающейся на "X"
Нужно отфильтровать пользователей, у которых хотя бы одна группа имеет имя с префиксом X. Для коллекции групп подходит anyMatch, после чего результат собирают в список.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
// получить список пользователей которые состоят в группе начинающейся на "X" public List<User> consume(Stream<User> usersStream) { }
Ответ
Нужно отфильтровать пользователей, у которых хотя бы одна группа имеет имя с префиксом X. Для коллекции групп подходит anyMatch, после чего результат собирают в список.
Если модель предоставляет getGroups() и у группы есть getName(), решение для ненулевых пользователей и коллекций выглядит так:
public List<User> consume(Stream<User> usersStream) {
return usersStream
.filter(user -> user.getGroups().stream()
.anyMatch(group -> group.getName() != null
&& group.getName().startsWith("X")))
.collect(java.util.stream.Collectors.toList());
}
Названия методов в условии не заданы, поэтому их нужно адаптировать к модели. Пользователь попадает один раз независимо от числа подходящих групп; startsWith чувствителен к регистру.