Junior — Middle
62
Какое ограничение по количеству применений Stream в Java?
Companies where asked
Answer from AI
sobes.tech AI
В Java Stream можно использовать только один раз. После того, как к потоку применена терминальная операция (например, collect(), forEach(), reduce()), поток считается закрытым и повторное использование того же объекта Stream невозможно — будет выброшено исключение IllegalStateException с сообщением "stream has already been operated upon or closed".
Если нужно выполнить несколько операций с теми же данными, необходимо создавать новый Stream из исходного источника.
Пример:
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream();
stream.forEach(System.out::println); // терминальная операция
// Повторное использование вызовет ошибку:
// stream.forEach(System.out::println); // IllegalStateException
// Правильно:
list.stream().forEach(System.out::println);
list.stream().count();