Назад к вопросам
СБЕР
Senior
3
Расскажи жизненный цикл стрима в Java, его состояния и типы методов.
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Жизненный цикл стрима в Java состоит из трёх основных этапов:
- Создание стрима — получение объекта Stream из коллекции, массива или генератора.
- Промежуточные операции — методы, которые возвращают новый стрим, например,
filter(),map(),sorted(). Они ленивы и не выполняются до терминальной операции. - Терминальная операция — методы, которые запускают обработку и возвращают результат или побочный эффект, например,
collect(),forEach(),reduce().
Состояния стрима:
- Ленивое состояние — после создания и промежуточных операций, стрим не выполняет вычисления.
- Активное состояние — при вызове терминальной операции начинается обработка данных.
- Завершённое состояние — после выполнения терминальной операции стрим становится недействительным и не может быть использован повторно.
Типы методов:
- Промежуточные методы — возвращают новый стрим, позволяют строить цепочку операций.
- Терминальные методы — запускают вычисления и возвращают результат или побочный эффект.
Пример:
List<String> names = Arrays.asList("Anna", "Bob", "Charlie");
List<String> filtered = names.stream()
.filter(name -> name.startsWith("A")) // промежуточная операция
.map(String::toUpperCase) // промежуточная операция
.collect(Collectors.toList()); // терминальная операция