## 1.绪论

In this quick tutorial, we’ll cover how we can calculate sum & average in an array using both Java standard loops and the Stream API.

## 2.寻找数组元素的总和

### 2.1.使用For循环进行求和。

In order to find the sum of all elements in an array, we can simply iterate the array and add each element to a sum accumulating variable.

This very simply starts with a sum of 0 and add each item in the array as we go:

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

### 2.2.使用Java流API的总结</b

We can use the Stream API for achieving the same result:

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

It’s important to know that the sum() method only supports primitive type streams.

If we want to use a stream on a boxed Integer value, we must first convert the stream into IntStream using the mapToInt method.

After that, we can apply the sum() method to our newly converted IntStream:

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

## 3.寻找Java数组中的平均数

### 3.1.不使用流API的平均数</b

Once we know how to calculate the sum of array elements, finding average is pretty easy – as Average = Sum of Elements / Number of Elements:

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

Notes:

1. Dividing an int by another int returns an int result. To get an accurate average, we first cast sum to double.
2. Java Array has a length field which stores the number of elements in the array.

### 3.2.使用Java流API的平均值</b

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

IntStream.average() returns an OptionalDouble which may not contain a value and which needs a special handling.

IntStream.average()返回一个OptionalDouble，它可能不包含一个值，需要特殊处理。

## 4.总结

In this article, we explored how to find sum/average of int array elements.

As always, the code is available over on Github.