Что такое Java Stream API и как его эффективно использовать можно?

Автор AlexXC, 06 марта 2025, 20:52

« назад - далее »

AlexXC

Хотелось бы иметь понимание какие преимущества дает использование Stream API для обработки коллекций в Java? Можете привести примеры использования фильтров, маппинга и редукции?

Alex_S

Преимущества Stream API в Java:

Удобство и читаемость: Код становится более компактным и выразительным.

Ленивая обработка: Операции выполняются только при необходимости.

Параллелизм: Легко распараллеливать операции для ускорения обработки.

Функциональный стиль: Поддержка декларативного подхода.

Примеры использования:

Фильтрация:

java
Copy
List<String> filteredNames = names.stream()
    .filter(name -> name.startsWith("A"))
    .collect(Collectors.toList());
Маппинг:
java
Copy
List<Integer> nameLengths = names.stream()
    .map(String::length)
    .collect(Collectors.toList());
Редукция:

java
Copy
int sum = numbers.stream()
    .reduce(0, Integer::sum);
Комбинирование операций:

java
Copy
int totalLength = names.stream()
    .filter(name -> name.startsWith("A"))
    .map(String::length)
    .reduce(0, Integer::sum);
Параллельная обработка:

java
Copy
int sum = numbers.parallelStream()
    .reduce(0, Integer::sum);

Stream API делает код чище и эффективнее, особенно при работе с большими данными.