List<String> words = Arrays.asList("Привет", "Пока", "ОКО");

Фрагмент не компилируется: toUpperCase и contains принадлежат String, а не Stream<String>. Для преобразования элементов нужен map, а для отбора — filter.

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

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

Фрагмент не компилируется: toUpperCase и contains принадлежат String, а не Stream<String>. Для преобразования элементов нужен map, а для отбора — filter.

Подробный разбор

Ответ с пояснениями

Условие

List<String> words = Arrays.asList("Привет", "Пока", "ОКО"); words.stream() .filter(word -> word.contains("о")) .toUpperCase() .contains("о") .forEach(System.out :: println);

Ответ

Фрагмент не компилируется: toUpperCase и contains принадлежат String, а не Stream<String>. Для преобразования элементов нужен map, а для отбора — filter.

Например, чтобы выбрать слова со строчной «о» и вывести их в верхнем регистре:

words.stream()
    .filter(word -> word.indexOf('о') >= 0)
    .map(word -> word.toUpperCase(Locale.ROOT))
    .forEach(System.out::println);

Нужен импорт java.util.Locale. Результат — ПОКА; ОКО не проходит регистрозависимый исходный фильтр. Если после преобразования проверять наличие строчной «о», совпадений не будет. Для регистронезависимого поиска необходимо явно согласовать другую последовательность нормализации и проверки.

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

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

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

Подробнее