Sobes.tech
Назад к вопросам
Junior — Middle
67

Как отличаются подходы к обработке коллекций при использовании стандартных циклов и Stream API в Java?

Компании, где спрашивали
Firecode

Ответ от нейросети

sobes.tech AI

Стандартные циклы (for, while) в Java — это императивный подход к обработке коллекций, где программист явно управляет итерацией и состоянием. Такой код часто более подробный и менее декларативный.

Stream API предлагает декларативный стиль: вы описываете, что хотите сделать с элементами коллекции (фильтрация, преобразование, агрегация), а не как именно это делать. Stream API поддерживает ленивые вычисления и может легко использовать параллелизм.

Пример с циклом и Stream API:

List<String> names = Arrays.asList("Anna", "Bob", "Charlie");

// Стандартный цикл
List<String> filtered = new ArrayList<>();
for (String name : names) {
    if (name.length() > 3) {
        filtered.add(name.toUpperCase());
    }
}

// Stream API
List<String> filteredStream = names.stream()
    .filter(name -> name.length() > 3)
    .map(String::toUpperCase)
    .collect(Collectors.toList());

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