求java Array和及平均数

求java Array和及平均数

本文介绍使用标准java循环和Stream api方式求java Array和及平均数。

数组元素求和

循环方式实现

为了求数组元素之和,我们可以简单迭代数组,并增加每个元素至累加变量,开始设置sum为0,然后依次累加:

public static int findSumWithoutUsingStream(int[] array) {
    int sum = 0;
    for (int value : array) {
        sum += value;
    }
    return sum;
}

流方式实现

可以使用流方式实现通用功能:

public static int findSumUsingStream(int[] array) {
    return Arrays.stream(array).sum();
}

需要注意的是,sum()方法仅支持原始类型流。如果我们想使用包装类型Integer流,我们必须使用mapToInt方法转换至IntStream,然后我们可以使用sum方法:

public static int findSumUsingStream(Integer[] array) {
    return Arrays.stream(array)
      .mapToInt(Integer::intValue)
      .sum();
}

数组元素求平均值

非流方式实现

已经知道如何求和,平均值就不难了。平均值=和/个数:

public static double findAverageWithoutUsingStream(int[] array) {
    int sum = findSumWithoutUsingStream(array);
    return (double) sum / array.length;
}

注意:
1. 一个整数除以另一个整数,返回精确值,所以转换第一个整数为double。
2. java数组有length属性,其为数组元素个数。

流方式实现

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

IntStream.average方法返回OptionalDouble,可能不包含值,所以需要指定一个特定值。

总结

本文介绍两种方法针对数组元素求和及平均数。

猜你喜欢

转载自blog.csdn.net/neweastsun/article/details/79921352