求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,可能不包含值,所以需要指定一个特定值。
总结
本文介绍两种方法针对数组元素求和及平均数。
本文参考链接:https://blog.csdn.net/neweastsun/article/details/79921352