Назад к вопросам
Simbirsoft
Junior — Middle
66
Какое отличие между методами peek() и sorted() в контексте работы с коллекциями или потоками данных?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Методы peek() и sorted() в Java Stream API выполняют разные задачи:
-
peek() — промежуточный метод, который позволяет выполнить действие над каждым элементом потока без изменения самого потока. Обычно используется для отладки или логирования.
-
sorted() — промежуточный метод, который сортирует элементы потока по естественному порядку или с помощью компаратора, возвращая новый отсортированный поток.
Пример использования:
List<String> list = Arrays.asList("banana", "apple", "cherry");
list.stream()
.peek(s -> System.out.println("До сортировки: " + s))
.sorted()
.peek(s -> System.out.println("После сортировки: " + s))
.collect(Collectors.toList());
В этом примере peek() выводит элементы до и после сортировки, а sorted() меняет порядок элементов.
Итого:
peek()— для побочных эффектов без изменения данных.sorted()— для изменения порядка элементов в потоке.