Фильтрация, приведение к верхнему регистру и сортировка строк

Фильтруйте startsWith("c"), преобразуйте через toUpperCase(Locale.ROOT), затем сортируйте. Для приведённого списка вывод будет C1, затем C2.

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

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

Фильтруйте startsWith("c"), преобразуйте через toUpperCase(Locale.ROOT), затем сортируйте. Для приведённого списка вывод будет C1, затем C2.

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

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

Условие

Дан массив строк. Требуется выполнить последовательную обработку данных:

  • отбор: выбрать только те элементы, которые начинаются с символа "c" (с учётом регистра);
  • преобразование: перевести отобранные строки в верхний регистр;
  • упорядочивание: отсортировать полученные строки в лексикографическом порядке;
  • вывод: вывести каждый элемент итоговой коллекции в консоль.
List<String> values = Arrays.asList("a1", "a2", "b1", "c2", "c1");

Ответ

Фильтруйте startsWith("c"), преобразуйте через toUpperCase(Locale.ROOT), затем сортируйте. Для приведённого списка вывод будет C1, затем C2.

values.stream()
    .filter(s -> s.startsWith("c"))
    .map(s -> s.toUpperCase(java.util.Locale.ROOT))
    .sorted()
    .forEachOrdered(System.out::println);

Предполагается, что элементы не null. Locale.ROOT делает преобразование независимым от локали машины. Фильтрация выполняется до изменения регистра, поэтому исходные строки с заглавной C не пройдут. sorted использует естественный порядок строк, а forEachOrdered сохраняет порядок вывода.

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

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

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

Подробнее