Rechercher la somme et la moyenne dans un tableau Java

1. Introduction

Dans ce rapide didacticiel, nous verrons comment nous pouvons calculer la somme et la moyenne dans un tableau en utilisant à la fois les boucles standard Java et l' API Stream .

2. Rechercher la somme des éléments du tableau

2.1. Somme à l'aide d'une boucle For

Afin de trouver la somme de tous les éléments d'un tableau, nous pouvons simplement itérer le tableau et ajouter chaque élément à une somme accumuléevariable.

Cela commence très simplement par une somme de 0 et ajoute chaque élément du tableau au fur et à mesure:

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

2.2. Sum avec l'API Java Stream

Nous pouvons utiliser l'API Stream pour obtenir le même résultat:

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

Il est important de savoir que la méthode sum () ne prend en charge que les flux de type primitif.

Si nous voulons utiliser un flux sur une valeur Integer encadrée , nous devons d'abord convertir le flux en IntStream à l'aide de la méthode mapToInt .

Après cela, nous pouvons appliquer la méthode sum () à notre IntStream nouvellement converti :

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

Vous pouvez en savoir plus sur l'API Stream ici.

3. Rechercher la moyenne dans un tableau Java

3.1. Moyenne sans l'API Stream

Une fois que nous savons comment calculer la somme des éléments du tableau, trouver la moyenne est assez facile - comme Moyenne = Somme des éléments / Nombre d'éléments :

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

Remarques :

  1. La division d'un int par un autre int renvoie un résultat int . Pour obtenir une moyenne précise, nous commençons par convertir la somme en double .
  2. Java Array a un champ de longueur qui stocke le nombre d'éléments dans le tableau.

3.2. Moyenne à l'aide de l'API Java Stream

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

IntStream.average () retourne un OptionalDouble qui peut ne pas contenir de valeur et qui nécessite un traitement spécial.

En savoir plus sur les options dans cet article et sur la classe OptionalDouble dans la documentation Java 8.

4. Conclusion

Dans cet article, nous avons exploré comment trouver la somme / moyenne des éléments du tableau int .

Comme toujours, le code est disponible sur Github.