Calculer la moyenne d'un tableau en Java

Le calcul de la moyenne des valeurs d'un tableau en java est similaire au calcul de la moyenne dans une arraylist ou une autre collection d'objets. Les exemples sont implémentés avec java, java 8, guava et apache commons pour expliquer comment trouver la moyenne arithmétique d'un tableau numérique.

En utilisant la méthode naïve, on va parcourir le tableau des nombres entiers avec la boucle for each. Une variable "somme" ajoute a chaque itération la valeur de la position courante, ensuite, "somme" est divisée par la taille du tableau. C'est comme ça qu'on trouve la moyenne.

public class average_array {

public static void main(String[] args) {

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

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

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

System.out.print("\nMoyenne = "+moyenne);
}
}
Exécution:

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

Java 8

Dans java 8, le JDK fournit un ensemble d'opérations qui aident à réduire le nombre d'instructions contrairement à l'exemple précédent, la moyenne d'un tableau se fait en une seule instruction.

public void moyenne_tableau_java8 () {
OptionalDouble moyenne = Arrays.stream(TabNombres).average();
}

Google Guava

Google Guava contient la classe java.lang.Math qui permet de traiter les int et les double.

public static float moyenne_tableau_guava (int array[]) {
float average = (float) DoubleMath.mean(array);
return average;
}

Apache Commons

Apache commons contient une libraire mathématique simplifiant les longs calculs.

public static float moyenne_tableau_apache_commons (int array[]) {
Mean mean = new Mean();
float average = mean.evaluate(array);
return average;
}
Ressources:
Javadoc: Interface DoubleStream
Apache commons: Mean.java class