Java 8 Streams Java Java API
Interface:
java.util.stream.DoubleStream
Method:
OptionalDouble average()
This terminal operation 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 reduction.
If any element is a NaN or the sum is at any point a NaN then the average will be NaN.
Examples
package com.logicbig.example.doublestream;
import java.util.stream.DoubleStream;
public class AverageExample {
public static void main(String... args) { DoubleStream doubleStream = DoubleStream.of(1.2, 1.3, 1.4, 1.5, 1.6); double d = doubleStream.average() .orElse(-100); System.out.println(d); } }
Output1.4
package com.logicbig.example.doublestream;
import java.util.OptionalDouble; import java.util.stream.DoubleStream;
public class AverageExample2 {
public static void main(String... args) { OptionalDouble average = DoubleStream.empty() .average();
System.out.println(average.isPresent()); if (average.isPresent()) { System.out.println(average.getAsDouble()); } } }
Outputfalse
package com.logicbig.example.doublestream;
import java.util.OptionalDouble; import java.util.stream.DoubleStream;
public class AverageExample3 {
public static void main(String... args) { DoubleStream ds = DoubleStream.of(1.0, 1.2, 2.0, 2.4, Double.NaN); OptionalDouble average = ds.average(); if (average.isPresent()) { System.out.println(average.getAsDouble()); } } }
OutputNaN
package com.logicbig.example.doublestream;
import java.util.OptionalDouble; import java.util.stream.DoubleStream;
public class AverageExample4 {
public static void main(String... args) { DoubleStream ds = DoubleStream.of(1.0, Double.MAX_VALUE, Double.MAX_VALUE); OptionalDouble average = ds.average(); if (average.isPresent()) { System.out.println(average.getAsDouble()); } } }
OutputInfinity
package com.logicbig.example.doublestream;
import java.util.OptionalDouble; import java.util.stream.DoubleStream;
public class AverageExample5 {
public static void main(String... args) { DoubleStream ds = DoubleStream.of(1.0, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY); OptionalDouble average = ds.average(); if (average.isPresent()) { System.out.println(average.getAsDouble()); } } }
OutputInfinity
|
|