// получить список пользователей которые состоят в группе начинающейся на "X"

Нужно отфильтровать пользователей, у которых хотя бы одна группа имеет имя с префиксом X. Для коллекции групп подходит anyMatch, после чего результат собирают в список.

Короткий ответ

Что ответить на собеседовании

Нужно отфильтровать пользователей, у которых хотя бы одна группа имеет имя с префиксом 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 чувствителен к регистру.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее