📜  Java中的 IntStream average() 示例(1)

📅  最后修改于: 2023-12-03 15:01:53.630000             🧑  作者: Mango

Java中的 IntStream average()

在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中所有或某个子集的平均值。但我们需要注意空对象的情况,并妥善处理它们。