Sobes.tech
Junior — Middle

Можеш ли да дадеш пример за функции за редукция, използвани в API Stream за обработка на данни?

sobes.tech AI

Отговор от AI

В API за потоци функциите за редуциране (редуктори) се използват за свързване на елементите на потока в една стойност. Основни примери:

  • reduce(BinaryOperator<T> accumulator) — свързва елементите, прилагайки бинарна операция.
  • reduce(T identity, BinaryOperator<T> accumulator) — редукция с начална стойност.

Пример: изчисляване на сумата на числата в списък

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream()
                 .reduce(0, (a, b) -> a + b);
System.out.println(sum); // 15

Друг пример — конкатенация на низове:

List<String> words = Arrays.asList("Java", "Stream", "API");
String result = words.stream()
                     .reduce("", (a, b) -> a + b + " ").trim();
System.out.println(result); // "Java Stream API"

По този начин редукторите позволяват агрегиране на данни от поток в една крайна стойност.