В какой версии Java появился Stream API?

«В какой версии Java появился Stream API?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Stream API был добавлен в Java 8 (выпущена в марте 2014 года) в рамках JSR-335 (Project Lambda). Это стало одним из главных нововведений, привнесших элементы функционального программирования в язык.

Что это дало:

  • Возможность выполнять сложные операции обработки данных (фильтрация, преобразование, агрегация) в декларативном стиле.
  • Поддержку параллельных вычислений почти "из коробки" через parallelStream().
  • Улучшенную читаемость кода при работе с коллекциями.

Пример сравнения "до" и "после":

// До Java 8 (императивный стиль)
List<String> result = new ArrayList<>();
for (String name : names) {
    if (name.startsWith("A")) {
        result.add(name.toUpperCase());
    }
}

// С Java 8 (декларативный стиль с Stream API)
List<String> result = names.stream()          // Источник
        .filter(name -> name.startsWith("A")) // Промежуточная операция
        .map(String::toUpperCase)             // Промежуточная операция
        .collect(Collectors.toList());        // Терминальная операция

Stream API работает по модели источник → промежуточные операции → терминальная операция и поддерживает ленивые вычисления.