Sobes.tech
Junior — Middle
99

Vai jūs varat izskaidrot, kā darbojas peek() metode Java Stream API un kādos gadījumos to izmanto?

Uzņēmumi, kur jautāja
IT OneIT One

Atbilde no AI

sobes.tech AI

Метод peek() в Java Stream API используется для промежуточного просмотра элементов потока без изменения самого потока. Он принимает Consumer — функцию, которая выполняет какое-то действие с каждым элементом, например, логирование или отладку.

Важно: peek() не изменяет элементы и не является терминальной операцией, поэтому для его выполнения поток должен быть «запущен» терминальной операцией (например, collect(), forEach()).

Пример использования:

List<String> names = Arrays.asList("Anna", "Bob", "Charlie");

List<String> filtered = names.stream()
    .filter(name -> name.length() > 3)
    .peek(name -> System.out.println("Filtered value: " + name))
    .collect(Collectors.toList());

Здесь peek() выводит отфильтрованные имена для отладки, не влияя на результат.

Используют peek() обычно для:

  • Отладки цепочек Stream
  • Логирования промежуточных значений
  • Выполнения побочных эффектов без изменения данных

Однако не стоит использовать peek() для изменения состояния или данных, так как это противоречит функциональному стилю и может привести к непредсказуемым результатам.