文
章
目
录
章
目
录
学习如何找到存储在数组中的数字的总和和平均值。我们将使用Java Stream API和简单的for循环来找到这些值。
请注意,Java中的数字用8种原始类型表示,即short、char、byte、boolean、int、float、long和double。
- 我们可以使用
IntStream
来处理short、char、byte、boolean和int值。 - 我们可以使用
LongStream
来处理long值。 - 我们使用
DoubleStream
来处理浮点数,如float和double。
当我们将原始数组传递给Arrays.stream()
方法时,我们将获得IntStream、LongStream或DoubleStream中的一种类型的流。
在从数组获取流并使用适当的方法计算总和和平均值等聚合值时,上述信息是必要的。
1.求数组项的总和
有几种方法可以获取存储在数组中的数字的总和。
- 使用long Stream.sum()
- 使用long Stream.summaryStatistics().sum()
- 使用for循环迭代项。
让我们看一下使用int[]和Integer[]数组类型的两种方法的示例。我们将根据从数组中获取流的类型,获取总和的long或double数据类型。
int[] intArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Integer[] integerArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
//1
long sum = Arrays.stream(intArray).sum();
//2
long sum = Arrays.stream(integerArray).mapToInt(i -> i).sum();
//3
long sum = Arrays.stream(intArray).summaryStatistics().getSum();
如果我们想使用循环实现数组求和,可以按如下方式完成。
long sum = 0;
for (int value : intArray) {
sum += value;
}
System.out.println(sum);
2.求数组项的平均值
计算平均值与在上一节中描述的计算总和非常相似。我们可以在sum()方法的位置调用stream.average()方法。
用于存储平均值的数据类型是double。
//1
double average = Arrays.stream(intArray).average().orElse(Double.NaN);
//2
double average = Arrays.stream(intArray).summaryStatistics().getAverage();
3.结论
在这个简短的教程中,我们学会了使用Stream API获取存储在数组中的数值的总和和平均值。使用Stream还有额外的好处,例如在Stream项目上应用filter而不影响原始数组。