Sobes.tech
Назад к вопросам
Junior — Middle
66

Какое отличие между методами peek() и sorted() в контексте работы с коллекциями или потоками данных?

Компании, где спрашивали
SimbirsoftSimbirsoft

Ответ от нейросети

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() — для изменения порядка элементов в потоке.