Назад к вопросам
Junior
69
questionbank
Что такое Stream в контексте Stream API?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Stream (поток) в контексте Java Stream API — это последовательность элементов, над которыми можно выполнять различные операции.
Основные характеристики Stream API:
- Не является структурой данных: Stream не хранит данные, а работает с ними по мере необходимости.
- Ленивый: Operations (промежуточные) выполняются только при вызове терминальной операции.
- Потребляется один раз: После выполнения терминальной операции поток считается исчерпанным и не может использоваться повторно.
- Поддерживает конвейер операций: Промежуточные операции возвращают новый поток, позволяя создавать цепочки (конвейеры).
Пример использования:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
// Создание списка чисел
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// Использование Stream API для фильтрации четных чисел и сбора их в новый список
List<Integer> evenNumbers = numbers.stream() // Создание потока из списка
.filter(n -> n % 2 == 0) // Промежуточная операция: фильтрация
.collect(Collectors.toList()); // Терминальная операция: сборка в список
// Вывод результата (для демонстрации)
// evenNumbers.forEach(System.out::println);
Типы операций:
| Тип операции | Описание | Примеры |
|---|---|---|
| Промежуточные | Возвращают новый поток. Ленивые. Могут быть объединены в конвейер. | filter(), map(), sorted(), distinct() |
| Терминальные | Производят окончательный результат. Не возвращают поток. Завершают конвейер. | forEach(), collect(), reduce(), count(), anyMatch() |
Stream API позволяет писать более декларативный и читаемый код для обработки коллекций данных.