Будет выведено только [dog, cat, parrot]. У стрима нет терминальной операции, поэтому sorted, peek и map не выполняются; исходный список не изменяется.
Печать отсортированных строк с помощью Stream API
Будет выведено только [dog, cat, parrot]. У стрима нет терминальной операции, поэтому sorted, peek и map не выполняются; исходный список не изменяется.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо понять, какой вывод появится в консоли после выполнения программы, и при обнаружении ошибок скорректировать код.
List<String> animals = List.of("dog", "cat", "parrot");
animals.stream()
.sorted()
.peek(item -> System.out.println(item))
.map(String :: length);
System.out.println(animals);
Ответ
Будет выведено только [dog, cat, parrot]. У стрима нет терминальной операции, поэтому sorted, peek и map не выполняются; исходный список не изменяется.
Для печати отсортированных строк достаточно:
animals.stream().sorted().forEachOrdered(System.out::println);
System.out.println(animals);
Вывод:
cat
dog
parrot
[dog, cat, parrot]
Если нужны длины, замените терминальную часть на map(String::length).forEachOrdered(System.out::println): получите 3, 3, 6. peek предназначен прежде всего для наблюдения за обработкой и не должен быть единственным носителем обязательного побочного эффекта.