Back to questions
СБЕР
Junior — Middle
59
Можно ли передавать поток как параметр в методы Stream API?
Companies where asked
Answer from AI
sobes.tech AI
В Java Stream API нельзя напрямую передавать поток (Stream) как параметр в методы, которые ожидают коллекции или массивы, но вы можете передавать сам объект Stream как параметр метода, если метод принимает Stream.
Однако важно помнить, что потоки в Java одноразовые — после выполнения терминальной операции поток становится закрытым и не может быть использован повторно.
Пример передачи Stream в метод:
public void processStream(Stream<String> stream) {
stream.filter(s -> s.startsWith("A"))
.forEach(System.out::println);
}
// Вызов
Stream<String> myStream = Stream.of("Apple", "Banana", "Avocado");
processStream(myStream);
Если же метод ожидает коллекцию, то можно передавать коллекцию, а внутри метода создавать поток.
Таким образом, поток можно передавать как параметр, если метод это поддерживает, но нельзя использовать один и тот же поток несколько раз, и нельзя передавать поток туда, где ожидается коллекция или массив без преобразования.