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
|