当前位置: 首页 > 工具软件 > Streams > 使用案例 >

streams - Information for Numeric Streams

文寒
2023-12-01

average

OptionalDouble average()

Returns an OptionalDouble describing the arithmetic mean of elements of this stream, or an empty optional if this stream is empty. This is a special case of a reduction.

This is a terminal operation.

Returns:

an OptionalDouble containing the average element of this stream, or an empty optional if the stream is empty

 

max

OptionalInt max()

Returns an OptionalInt describing the maximum element of this stream, or an empty optional if this stream is empty. This is a special case of a reduction and is equivalent to:


     return reduce(Integer::max);
 

This is a terminal operation.

Returns:

an OptionalInt containing the maximum element of this stream, or an empty OptionalInt if the stream is empty

 

min

OptionalInt min()

Returns an OptionalInt describing the minimum element of this stream, or an empty optional if this stream is empty. This is a special case of a reduction and is equivalent to:


     return reduce(Integer::min);
 

This is a terminal operation.

Returns:

an OptionalInt containing the minimum element of this stream, or an empty OptionalInt if the stream is empty

 

sum

int sum()

Returns the sum of elements in this stream. This is a special case of a reduction and is equivalent to:


     return reduce(0, Integer::sum);
 

This is a terminal operation.

Returns:

the sum of elements in this stream

 

summaryStatistics

IntSummaryStatistics summaryStatistics()

Returns an IntSummaryStatistics describing various summary data about the elements of this stream. This is a special case of a reduction.

This is a terminal operation.

Returns:

an IntSummaryStatistics describing various summary data about the elements of this stream

// streams/NumericStreamInfo.java
// (c)2017 MindView LLC: see Copyright.txt
// We make no guarantees that this code is fit for any purpose.
// Visit http://OnJava8.com for more book information.

import static streams.RandInts.*;

import java.util.stream.*;

public class NumericStreamInfo {
  public static void main(String[] args) {
    System.out.println(rands().average().getAsDouble());
    System.out.println(rands().max().getAsInt());
    System.out.println(rands().min().getAsInt());
    System.out.println(rands().sum());
    System.out.println(rands().summaryStatistics());
  }
}
/* Output:
507.94
998
8
50794
IntSummaryStatistics{count=100, sum=50794, min=8, average=507.940000, max=998}
*/

The same operations are available for LongStreams and DoubleStreams.

references:

1. On Java 8 - Bruce Eckel

2. https://github.com/wangbingfeng/OnJava8-Examples/blob/master/streams/NumericStreamInfo.java

3. https://github.com/wangbingfeng/OnJava8-Examples/blob/master/streams/RandInts.java

4. https://docs.oracle.com/javase/8/docs/api/java/util/stream/IntStream.html#average--

5. https://docs.oracle.com/javase/8/docs/api/java/util/stream/IntStream.html#max--

6. https://docs.oracle.com/javase/8/docs/api/java/util/stream/IntStream.html#sum--

7. https://docs.oracle.com/javase/8/docs/api/java/util/stream/IntStream.html#summaryStatistics--

 类似资料: