📅  最后修改于: 2023-12-03 15:01:53.630000             🧑  作者: Mango
在Java中,IntStream
是一个处理基本类型int
的流。它提供了一系列的方法用于处理这些基本类型的值,包括计算平均值的average()
方法。本文将介绍IntStream average()
方法的使用方法和示例。
average()
方法返回一个OptionalDouble
对象,它可能包含流中元素的平均值,也可能是一个空对象(当流为空时)。因此,在使用average()
方法时,我们需要将其包装进一个if语句中以处理空对象的情况。以下是使用average()
方法的示例:
int[] arr = {1, 2, 3, 4, 5};
IntStream stream = Arrays.stream(arr);
OptionalDouble average = stream.average();
if (average.isPresent()) {
System.out.println("The average is: " + average.getAsDouble());
} else {
System.out.println("The stream is empty.");
}
这里,我们将一个int
类型的数组转换为一个IntStream
对象,并使用average()
方法计算平均值。如果计算结果不为空,我们打印出平均值,否则打印出流为空的信息。
除了计算整个流的平均值,我们还可以使用average()
方法计算流的某个子集的平均值。例如,我们可以计算IntStream
中,大于3的元素的平均值,示例代码如下:
int[] arr = {1, 2, 3, 4, 5};
IntStream stream = Arrays.stream(arr);
OptionalDouble average = stream.filter(x -> x > 3).average();
if (average.isPresent()) {
System.out.println("The average is: " + average.getAsDouble());
} else {
System.out.println("The stream is empty.");
}
在这个示例中,我们使用filter()
方法过滤出大于3的元素,再使用average()
方法求得这些元素的平均值。同样,在使用average()
方法时,也需要进行非空判断。
总之,IntStream average()
方法是一个方便的方法,能够帮助我们计算IntStream
中所有或某个子集的平均值。但我们需要注意空对象的情况,并妥善处理它们。