Метод sum
Метод sum класса IntStream возвращает сумму
всех элементов потока. Метод не принимает параметров
и возвращает примитивное значение типа int.
Если поток пуст, метод возвращает 0.
Метод является терминальной операцией, то есть после его вызова поток считается использованным и не может быть обработан повторно.
Синтаксис
int sum = intStream.sum();
Пример
Давайте найдем сумму чисел в потоке, созданном из списка целых чисел:
import java.util.List;
import java.util.stream.IntStream;
public class Main
{
public static void main(String[] args)
{
List<Integer> list = List.of(1, 2, 3, 4, 5);
int res = list.stream()
.mapToInt(Integer::intValue)
.sum();
System.out.println(res);
}
}
Результат выполнения кода:
15
Пример
Давайте найдем сумму чисел в диапазоне,
созданном с помощью метода rangeClosed:
import java.util.stream.IntStream;
public class Main
{
public static void main(String[] args)
{
int res = IntStream.rangeClosed(1, 10).sum();
System.out.println(res);
}
}
Результат выполнения кода:
55
Пример
Давайте найдем сумму только четных чисел,
используя промежуточную операцию filter:
import java.util.stream.IntStream;
public class Main
{
public static void main(String[] args)
{
int res = IntStream.rangeClosed(1, 10)
.filter(n -> n % 2 == 0)
.sum();
System.out.println(res);
}
}
Результат выполнения кода:
30
Пример
Давайте проверим, что метод возвращает 0
для пустого потока:
import java.util.stream.IntStream;
public class Main
{
public static void main(String[] args)
{
int res = IntStream.empty().sum();
System.out.println(res);
}
}
Результат выполнения кода:
0
Смотрите также
-
класс
IntStream,
который представляет поток примитивных int -
метод
average,
который возвращает среднее значение элементов -
метод
rangeClosed,
который создает поток чисел в заданном диапазоне -
метод
map,
который преобразует элементы потока