Junior — Middle
86
Qual è la limitazione sul numero di utilizzi di Stream in Java?
Le aziende dove è stato chiesto
Risposta dell'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();