Java Core middle
Stream API: что произойдёт при двух терминальных операциях?
Ответ
IllegalStateException: stream has already been operated upon or closed. Стрим одноразовый — после терминальной операции закрывается. Если нужно два результата — пересоздайте стрим или используйте Collectors (например, teeing/groupingBy).
Разбор: Стрим одноразовый: после первой терминальной операции он считается использованным/закрытым, и повторный вызов бросает IllegalStateException: stream has already been operated upon or closed. Это runtime-исключение, а не ошибка компиляции. Чтобы получить несколько результатов, нужно либо пересоздать стрим, либо использовать Collectors (например, teeing/groupingBy).
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.