Усреднение массива в Java

Усреднение значений массива в java похоже на усреднение в arraylist или другой коллекции объектов. Примеры реализованы на java, java 8, guava и apache commons, чтобы объяснить, как найти среднее арифметическое числового массива.

Используя наивный метод, мы пройдемся по массиву целых чисел с помощью цикла for each. Переменная "sum" прибавляет к каждой итерации значение текущей позиции, затем "sum" делится на размер массива. Так находим mean.

public class average_array {

public static void main(String[] args) {

int array[] = {16, 5, 13, 54, 17, 2, 38, 42, 67};

for (int number:array)
System.out.print(number+" ");

int sum = 0;
for(int i = 0; i < array.length; i++){
sum += array[i];
}
average float = (float) sum /array.length;

System.out.print("\nAverage = "+average);
}
}
Runtime:

16 5 13 54 17 2 38 42 67 
Average=28.222221

Java 8

В java 8, JDK предоставляет набор операций, которые помогают уменьшить количество операторов, в отличие от предыдущего примера, среднее значение массива выполняется в одном операторе.

public void moyenne_tableau_java8 () {
OptionalDouble среднее = Arrays.stream(TabNumbers).average();
}

Google Guava

Google Guava содержит класс java.lang.Math, который позволяет обрабатывать int и double.

public static float moyenne_tableau_guava (int array[]) {
float average = (float) DoubleMath.mean(array);
средняя доходность;
}

Apache Commons

Apache Commons содержит математическую библиотеку, упрощающую длинные вычисления.

public static float moyenne_tableau_apache_commons (int array[]) {
Mean mean = new Mean();
float average = mean.evaluate(array);
средняя доходность;
}
Resources:
Javadoc:  Интерфейс DoubleStream
Apache commons:  Mean.java класс