src/share/classes/java/util/IntSummaryStatistics.java

Print this page




  37  * <pre> {@code
  38  * IntSummaryStatistics stats = intStream.collect(IntSummaryStatistics::new,
  39  *                                                IntSummaryStatistics::accept,
  40  *                                                IntSummaryStatistics::combine);
  41  * }</pre>
  42  *
  43  * <p>{@code IntSummaryStatistics} can be used as a
  44  * {@linkplain java.util.stream.Stream#collect(Collector) reduction}
  45  * target for a {@linkplain java.util.stream.Stream stream}. For example:
  46  *
  47  * <pre> {@code
  48  * IntSummaryStatistics stats = people.stream()
  49  *                                    .collect(Collectors.summarizingInt(Person::getDependents));
  50  *}</pre>
  51  *
  52  * This computes, in a single pass, the count of people, as well as the minimum,
  53  * maximum, sum, and average of their number of dependents.
  54  *
  55  * @implNote This implementation is not thread safe. However, it is safe to use
  56  * {@link java.util.stream.Collectors#summarizingInt(java.util.function.ToIntFunction)
  57  * Collectors.toIntStatistics()} on a parallel stream, because the parallel
  58  * implementation of {@link java.util.stream.Stream#collect Stream.collect()}
  59  * provides the necessary partitioning, isolation, and merging of results for
  60  * safe and efficient parallel execution.
  61  *
  62  * <p>This implementation does not check for overflow of the sum.
  63  * @since 1.8
  64  */
  65 public class IntSummaryStatistics implements IntConsumer {
  66     private long count;
  67     private long sum;
  68     private int min = Integer.MAX_VALUE;
  69     private int max = Integer.MIN_VALUE;
  70 
  71     /**
  72      * Construct an empty instance with zero count, zero sum,
  73      * {@code Integer.MAX_VALUE} min, {@code Integer.MIN_VALUE} max and zero
  74      * average.
  75      */
  76     public IntSummaryStatistics() { }
  77 




  37  * <pre> {@code
  38  * IntSummaryStatistics stats = intStream.collect(IntSummaryStatistics::new,
  39  *                                                IntSummaryStatistics::accept,
  40  *                                                IntSummaryStatistics::combine);
  41  * }</pre>
  42  *
  43  * <p>{@code IntSummaryStatistics} can be used as a
  44  * {@linkplain java.util.stream.Stream#collect(Collector) reduction}
  45  * target for a {@linkplain java.util.stream.Stream stream}. For example:
  46  *
  47  * <pre> {@code
  48  * IntSummaryStatistics stats = people.stream()
  49  *                                    .collect(Collectors.summarizingInt(Person::getDependents));
  50  *}</pre>
  51  *
  52  * This computes, in a single pass, the count of people, as well as the minimum,
  53  * maximum, sum, and average of their number of dependents.
  54  *
  55  * @implNote This implementation is not thread safe. However, it is safe to use
  56  * {@link java.util.stream.Collectors#summarizingInt(java.util.function.ToIntFunction)
  57  * Collectors.summarizingInt()} on a parallel stream, because the parallel
  58  * implementation of {@link java.util.stream.Stream#collect Stream.collect()}
  59  * provides the necessary partitioning, isolation, and merging of results for
  60  * safe and efficient parallel execution.
  61  *
  62  * <p>This implementation does not check for overflow of the sum.
  63  * @since 1.8
  64  */
  65 public class IntSummaryStatistics implements IntConsumer {
  66     private long count;
  67     private long sum;
  68     private int min = Integer.MAX_VALUE;
  69     private int max = Integer.MIN_VALUE;
  70 
  71     /**
  72      * Construct an empty instance with zero count, zero sum,
  73      * {@code Integer.MAX_VALUE} min, {@code Integer.MIN_VALUE} max and zero
  74      * average.
  75      */
  76     public IntSummaryStatistics() { }
  77