Java 8中的java.util.stream.IntStream处理原始int。它有助于解决旧问题,例如以新的方式在数组中找到最大值,在数组中找到最小值,数组中所有元素的总和以及数组中所有值的平均值。 IntStream average()返回一个OptionalDouble,描述此流的元素的算术平均值;如果此流为空,则返回一个空的Optional。
用法:
OptionalDouble average()
Where, OptionalDouble is a container object
which may or may not contain a double value.
下面给出一些示例,以更好地理解该功能。
示例1:
// Java code for IntStream average()
import java.util.*;
import java.util.stream.IntStream;
class GFG {
// Driver code
public static void main(String[] args)
{
// creating a stream
IntStream stream = IntStream.of(2, 3, 4, 5, 6, 7, 8);
// OptionalDouble is a container object
// which may or may not contain a
// doouble value.
OptionalDouble obj = stream.average();
// If a value is present, isPresent() will
// return true and getAsDouble() will
// return the value
if (obj.isPresent()) {
System.out.println(obj.getAsDouble());
}
else {
System.out.println("-1");
}
}
}
输出:
5.0
示例2:
// Implementation of IntStream average()
import java.util.*;
import java.util.stream.IntStream;
class GFG {
// Driver code
public static void main(String[] args)
{
// creating a stream
IntStream stream = IntStream.of(2, 3, 3, 4, 6, 8, 8);
// OptionalDouble is a container object
// which may or may not contain a
// doouble value.
OptionalDouble obj = stream.average();
// If a value is present, isPresent() will
// return true and getAsDouble() will
// return the value
if (obj.isPresent()) {
System.out.println(obj.getAsDouble());
}
else {
System.out.println("-1");
}
}
}
输出:
4.857142857142857