Java 8 – Find sum and average of a List or ArrayList ?

In this article, we will discuss how to calculate sum and average of a List or ArrayList in Java 8

1. Java 8 – Find sum and average of a List

  • Use IntSummaryStatistics to find various parameters/statistics of a List like,
    • Sum of all elements in a List using getSum() method which returns value in long-type
    • Average of all elements in a List using getAverage() method which returns value in double-type
    • Minimum element from a List using getMin() method which returns value in integer-type
    • Maximum element from a List using getMax() method which returns value in integer-type
    • Number of elements in a List (or count) using getCount() method which returns value in long-type

CalculateStatisticsOfListInJava8.java

package in.bench.resources.list.sum.average;

import java.util.Arrays;
import java.util.IntSummaryStatistics;
import java.util.List;

public class CalculateStatisticsOfListInJava8 {

	public static void main(String[] args) {

		// list
		List<Integer> numbers = Arrays.asList(
				2, 3, 5, 7, 11, 13, 17
				);


		// print numbers to console
		System.out.println("Original elements :-");
		numbers.stream().forEach(num -> System.out.println(num));


		// IntSummaryStatistics using Java 8 Stream API
		IntSummaryStatistics statistics = numbers
				.stream()
				.mapToInt(num -> num)
				.summaryStatistics();


		// 1. sum - print sum to the console
		System.out.println("\n1. Sum is = " + statistics.getSum());


		// 2. average - print average to the console
		System.out.println("\n2. Average is = " + statistics.getAverage());


		// 3. min - print minimum to the console
		System.out.println("\n3. Minimum is = " + statistics.getMin());


		// 4. max - print maximum to the console
		System.out.println("\n4. Maximum is = " + statistics.getMax());


		// 5. count - print count to the console
		System.out.println("\n5. Count is = " + statistics.getCount());
	}
}

Output:

Original elements :-
2
3
5
7
11
13
17

1. Sum is = 58

2. Average is = 8.285714285714286

3. Minimum is = 2

4. Maximum is = 17

5. Count is = 7

2. Java – Find sum and average of a List

  • In the below illustrations, we will find sum, average, minimum, maximum and count of elements in a List
    • Sum – by iterating using enhanced for-loop and adding/summing & saving in a variable
    • Averagedivide above calculated sum by number of elements (or size of elements)
  • Sort List elements in ascending order
    • Minimum – get 1st element from sorted List using index 0
    • Maximum – get last element from sorted List using last index i.e., (size – 1)
  • Use size() method of List to get number/count of elements

CalculateStatisticsOfList.java

package in.bench.resources.list.sum.average;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class CalculateStatisticsOfList {

	public static void main(String[] args) {

		// local variables
		int sum = 0;
		double average = 0.0;


		// list
		List<Integer> numbers = Arrays.asList(
				2, 3, 5, 7, 11, 13, 17
				);


		// print numbers to console
		System.out.println("Original elements :-");
		numbers.stream().forEach(num -> System.out.println(num));


		// sort List elements to find min and max
		Collections.sort(numbers);


		// find sum by iterating using enhanced for-loop
		for(int num : numbers) {
			sum += num;
		}


		// 1. sum - print sum to the console
		System.out.println("\n1. Sum is = " + sum);


		// find average by dividing sum and size of List elements
		average = (double) sum / (double) numbers.size();


		// 2. average - print average to the console
		System.out.println("\n2. Average is = " + average);


		// 3. min - print minimum to the console
		System.out.println("\n3. Minimum is = " + numbers.get(0));


		// 4. max - print maximum to the console
		System.out.println("\n4. Maximum is = " + numbers.get(numbers.size() - 1));


		// 5. count - print count to the console
		System.out.println("\n5. Count is = " + numbers.size());
	}
}

Output:

Original elements :-
2
3
5
7
11
13
17

1. Sum is = 58

2. Average is = 8.285714285714286

3. Minimum is = 2

4. Maximum is = 17

5. Count is = 7

Related Articles:

References:

Happy Coding !!
Happy Learning !!

Java 8 – Find First and Last elements in a List or ArrayList ?
Java 8 - How to calculate sum and average of an Arrays ?