Trouver la somme et la moyenne dans un tableau Java

Trouver la somme et la moyenne dans un tableau Java

1. introduction

Dans ce rapide didacticiel, nous expliquerons comment calculer la somme et la moyenne dans un tableau à l'aide des boucles standard Java et de l'APIStream.

2. Trouver 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,we can simply iterate the array and add each element to a sum accumulating __ variable.

Cela commence très simplement par unsum 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éthodesum() ne prend en charge queprimitive type streams.

Si nous voulons utiliser un flux sur une valeurInteger encadrée, nous devons d'abord convertir le flux enIntStream en utilisant la méthodemapToInt.

Après cela, nous pouvons appliquer la méthodesum() à nosIntStream nouvellement convertis:

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

Vous pouvez en savoir plus sur l'API Streamhere.

3. Trouver une 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 - en tant queAverage = Sum of Elements / Number of Elements:

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

Notes:

  1. La division d'unint par un autreint renvoie un résultatint. To get an accurate average, we first cast sum to double.

  2. JavaArray a un champlength 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() renvoie unOptionalDouble qui peut ne pas contenir de valeur et qui nécessite un traitement spécial.

En savoir plus surOptionals dans l'articlethis et sur la classeOptionalDouble dans lesJava 8 Documentation.

4. Conclusion

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

Comme toujours, le code est disponibleover on Github.