EN
Java 8 - sum List of Integers with Stream
0 points
In this article, we would like to show you how to sum List of Integers with Stream in Java 8.
In this example, we use Stream.reduce()
method where the accumulator function is a lambda expression that adds two Integer values.
xxxxxxxxxx
1
import java.util.*;
2
3
public class Example {
4
5
public static void main(String[] args) {
6
// create list of integers
7
List<Integer> numbers = Arrays.asList(1, 2, 3);
8
9
// sum elements
10
Integer sum = numbers.stream()
11
.reduce(0, Integer::sum);
12
13
// display result
14
System.out.println("sum = " + sum);
15
}
16
}
Output:
xxxxxxxxxx
1
sum = 6
Note:
xxxxxxxxxx
1Integer sum = numbers.stream()
2.reduce(0, Integer::sum);
is equivalent to:
xxxxxxxxxx
1Integer sum = numbers.stream()
2.reduce(0, (a, b) -> a + b);
In this example, to calculate the sum of a list of integers we use:
mapToInt()
that converts the stream to an IntStream object,sum()
method to calculate the sum of the IntStream's elements.
xxxxxxxxxx
1
import java.util.*;
2
3
public class Example {
4
5
public static void main(String[] args) {
6
// create list of integers
7
List<Integer> numbers = Arrays.asList(1, 2, 3);
8
9
// sum elements
10
int sum = numbers.stream()
11
.mapToInt(Integer::intValue) // convert to IntStream object
12
.sum(); // sum elements
13
14
// display result
15
System.out.println("sum = " + sum);
16
}
17
}
Output:
xxxxxxxxxx
1
sum = 6
Note:
In the same way, we can use the
mapToLong()
andmapToDouble()
methods to calculate the sums of longs and doubles.xxxxxxxxxx
1double sum = numbers.stream()
2.mapToDouble(Double::doubleValue)
3.sum();
In this example, we use collect()
method to calculate the sum of a list of integers.
xxxxxxxxxx
1
import java.util.*;
2
import java.util.stream.Collectors;
3
4
public class Example {
5
6
public static void main(String[] args) {
7
// create list of integers
8
List<Integer> numbers = Arrays.asList(1, 2, 3);
9
10
// sum elements
11
Integer sum = numbers.stream()
12
.collect(Collectors.summingInt(Integer::intValue));
13
14
// display result
15
System.out.println("sum = " + sum);
16
}
17
}
Output:
xxxxxxxxxx
1
sum = 6