Усреднение массива в Java
Усреднение значений массива в java похоже на усреднение в arraylist или другой коллекции объектов. Примеры реализованы на java, java 8, guava и apache commons, чтобы объяснить, как найти среднее арифметическое числового массива.
Используя наивный метод, мы пройдемся по массиву целых чисел с помощью цикла for each. Переменная "sum" прибавляет к каждой итерации значение текущей позиции, затем "sum" делится на размер массива. Так находим mean.
Apache Commons содержит математическую библиотеку, упрощающую длинные вычисления.
Javadoc: Интерфейс DoubleStream
Apache commons: Mean.java класс
Используя наивный метод, мы пройдемся по массиву целых чисел с помощью цикла for each. Переменная "sum" прибавляет к каждой итерации значение текущей позиции, затем "sum" делится на размер массива. Так находим mean.
public class average_array {Runtime:
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);
}
}
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
public static float moyenne_tableau_apache_commons (int array[]) {Resources:
Mean mean = new Mean();
float average = mean.evaluate(array);
средняя доходность;
}
Javadoc: Интерфейс DoubleStream
Apache commons: Mean.java класс