DoubleSummaryStatistics
For double
values, DoubleSummaryStatistics
is used to collect counts, min, max, total, and average statistics.
This class is intended to operate with streams, although it is not required. It was introduced in Java 8.
DoubleSummaryStatistics
DoubleSummaryStatistics
is defined in the util
package in Java, so you must import the util
package before using the DoubleSummaryStatistics
class, as shown below:
import java.util.DoubleSummaryStatistics;
The statistics offered by this class are as follows:
Method Name | Description |
---|---|
accept(double value) |
Another value is added to the summary information. |
combine(DoubleSummaryStatistics other) |
The state of another DoubleSummaryStatistics object is merged using this method |
getCount() |
Returns the total number of values that have been seen so far. |
getSum() |
Returns the sum of all values observed so far, or zero if none have been seen |
getMin() |
Returns the smallest recorded value |
getMax() |
Returns the largest recorded value |
getAverage() |
Returns the arithmetic mean of all values seen so far, or zero if none have been seen. |
In the code below, we are computing the statistics from a list of double values. The accept
method is used to take the value into the summary information:
import java.util.ArrayList;import java.util.DoubleSummaryStatistics;import java.util.List;public class Main {public static void main(String args[]){List<Double> doubleList = new ArrayList<>();doubleList.add(12.4);doubleList.add(100.0);doubleList.add(136.5);doubleList.add(1000.2345);doubleList.add(200.34);doubleList.add(1.1);DoubleSummaryStatistics doubleSummaryStatistics = new DoubleSummaryStatistics();for(double d: doubleList) doubleSummaryStatistics.accept(d);System.out.println("Count of the elements - " + doubleSummaryStatistics.getCount());System.out.println("Sum of the elements - " + doubleSummaryStatistics.getSum());System.out.println("Minimum element - " + doubleSummaryStatistics.getMin());System.out.println("Maximum element - " + doubleSummaryStatistics.getMax());System.out.println("Average of the elements - " + doubleSummaryStatistics.getAverage());}}
In the code below, we use streams
to get summary statistics:
import java.util.ArrayList;import java.util.DoubleSummaryStatistics;import java.util.List;import java.util.stream.Collectors;public class Main {public static void main(String args[]){List<Double> doubleList = new ArrayList<>();doubleList.add(12.4);doubleList.add(100.0);doubleList.add(136.5);doubleList.add(1000.2345);doubleList.add(200.34);doubleList.add(1.1);DoubleSummaryStatistics doubleSummaryStatistics = doubleList.stream().collect(Collectors.summarizingDouble(e -> e));System.out.println("Count of the elements - " + doubleSummaryStatistics.getCount());System.out.println("Sum of the elements - " + doubleSummaryStatistics.getSum());System.out.println("Minimum element - " + doubleSummaryStatistics.getMin());System.out.println("Maximum element - " + doubleSummaryStatistics.getMax());System.out.println("Average of the elements - " + doubleSummaryStatistics.getAverage());}}