欢迎访问宙启技术站
智能推送

如何使用 Java 函数来计算数组中的平均值

发布时间:2023-05-21 23:51:58

在 Java 编程中,经常需要对一个数组中的数据进行计算和操作,比如获取数组中的最大值、最小值、总和和平均值等。计算数组中的平均值是一种常见的操作,本篇文章将介绍如何使用 Java 函数来计算数组中的平均值。

使用 for 循环计算数组中的平均值

一种比较简单的实现方法是使用 for 循环遍历数组中的每个元素,并把它们加起来,最后除以元素个数即可得到平均值。以下是一个示例代码:

public static double calculateAverage(int[] array) {
    int sum = 0;
    for (int i = 0; i < array.length; i++) {
        sum += array[i];
    }
    double average = (double)sum / array.length;
    return average;
}

该函数接受一个 int 类型的数组作为参数,返回数组中所有元素的平均值。其中,sum 变量用于记录数组中所有元素的总和,for 循环遍历数组中的每个元素,并加到 sum 变量中。最后,将 sum 除以数组长度即可得到平均值。

使用 Arrays 类的 stream() 函数计算数组中的平均值

Java 8 引入了函数式编程的概念,对 Java 的标准库进行了更新和增强,其中包括 Arrays 类提供了新的 stream() 函数来对数组进行操作。可以使用该函数来计算数组中的平均值,示例代码如下:

public static double calculateAverage(int[] array) {
    double average = Arrays.stream(array).average().orElse(Double.NaN);
    return average;
}

使用 stream() 函数可以将数组转化成一个流,该函数返回一个 DoubleStream 对象,可以使用 average() 函数来计算流中所有元素的平均值。注意,这里使用 orElse() 函数来处理数组为空时的情况,如果数组为空,将返回 Double.NaN(NaN 表示“不是一个数字”)。

使用 Stream API 计算数组中的平均值

Java 8 引入的 Stream API 提供了更为灵活的方式来对数组进行操作,下面是示例代码:

public static double calculateAverage(Integer[] array) {
    double average = Arrays.stream(array)
        .mapToInt(Integer::intValue)
        .average()
        .orElse(Double.NaN);
    return average;
}

该函数使用了 Java 8 的 Stream API,将 Integer 类型的数组转换成一个流,并使用 mapToInt() 方法将流中的元素转换为 int 类型。接着使用 average() 方法计算所有元素的平均值,如果数组为空,将返回 Double.NaN。

使用 Java 8 中 Stream API 的一个优点是可以使用 Lambda 表达式,使计算代码变得更加简洁。例如:

public static double calculateAverage(Integer[] array) {
    double average = Arrays.stream(array)
        .mapToDouble(num -> num)
        .average()
        .orElse(Double.NaN);
    return average;
}

这个版本的示例代码直接使用 mapToDouble() 将 Integer 数组中的值转成 double 数组,也可以用以下的语句:

public static double calculateAverage(Integer[] array) {
    double average = Arrays.stream(array)
        .mapToInt(i -> i)
        .average()
        .orElse(Double.NaN);
    return average;
}

Java 8 中,stream() 被定义在 Iterable 接口中。该方法返回一个顺序流,元素按需被提供,可以从集合中、数组中等数据源中获取元素。

综上所述,在 Java 编程中,计算数组中的平均值可以使用很多方式,如 for 循环、Arrays 类的 stream() 函数和 Java 8 引入的 Stream API。无论使用哪种方法,只要提供数组作为输入,都可以得到数组中所有元素的平均值。