Calculate Sum and Average of Array Items

Learn to find the sum and average of the numbers stored in an array. We will be using the Java Stream API and simple for loop to find these values.

Note that the numbers in Java are represented with 8 primitives i.e. short, char, byte, boolean, int, float, long and double.

• We can use `IntStream` for short, char, byte, boolean and int values.
• We can use `LongStream` for long values.
• We use `DoubleStream` for floating point numbers such as float and double.

When we pass the primitive arrays in the `Arrays.stream()` method then we get any one type of the stream i.e. `IntStream`, `LongStream` or `DoubleStream`.

The above information is necessary while getting the stream from an array, and using appropriate methods for calculating the aggregate values such as sum and average.

1. Finding Sum of Array Items

There are a couple of ways to get the sum of numbers stored in an array.

• long Stream.sum()
• long Stream.summaryStatistics().sum()
• Iterating items using for loop.

Let us see the example of both methods using `int[]` and `Integer[]` array types. We will get the sum in either long or double data type based on the type of stream we are getting the array.

``````int[] intArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Integer[] integerArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

//1
long sum = Arrays.stream(intArray).sum();

//2
long sum = Arrays.stream(integerArray).mapToInt(i -> i).sum();

//3
long sum = Arrays.stream(intArray).summaryStatistics().getSum();``````

If we want to loop the item, it can be done as follows.

``````long sum = 0;

for (int value : intArray) {
sum += value;
}

System.out.println(sum);``````

2. Finding Average of Array Items

Finding the average is pretty much similar to finding the sum as described in the previous section. We can call the `stream.average()` method in place of `sum()`.

The data type used for storing the average is double.

``````//1
double average = Arrays.stream(intArray).average().orElse(Double.NaN);

//2
double average = Arrays.stream(intArray).summaryStatistics().getAverage();``````

3. Conclusion

In this short tutorial, we learned to use the stream API to get the sum and the average of the items stored in an array. Using the streams provides additional benefits, such as applying the filtering on the stream items without affecting the original array.

Happy Learning !!

Sourcecode on Github

Subscribe
Notify of
Inline Feedbacks

HowToDoInJava provides tutorials and how-to guides on Java and related technologies.

It also shares the best practices, algorithms & solutions and frequently asked interview questions.