Встречается на 2% собеседований по Java

Как переиспользовать stream

В Java нельзя переиспользовать Stream после его закрытия (терминальной операции). Но можно:

  1. Создать Supplier для ленивого получения нового Stream:
java
Supplier<Stream<String>> streamSupplier = () -> list.stream();
streamSupplier.get().filter(...);
streamSupplier.get().map(...);
  1. Сохранить элементы в коллекцию:
java
List<String> collected = stream.collect(Collectors.toList());
collected.stream()... // новый stream
  1. Для примитивных стримов использовать summaryStatistics():
java
IntSummaryStatistics stats = intStream.summaryStatistics();
// stats содержит min, max, average и т.д.

Важно: каждый вызов терминальной операции (collect, forEach и др.) закрывает Stream.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы