Trova somma e media in un array Java

1. Introduzione

In questo breve tutorial, vedremo come possiamo calcolare la somma e la media in un array utilizzando sia i loop standard Java che l' API Stream .

2. Trova la somma degli elementi dell'array

2.1. Somma usando un ciclo For

Per trovare la somma di tutti gli elementi in un array, possiamo semplicemente iterare l'array e aggiungere ogni elemento a una somma che si accumulavariabile.

Questo inizia molto semplicemente con una somma di 0 e aggiungi ogni elemento nell'array mentre procediamo:

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

2.2. Somma con l'API Java Stream

Possiamo utilizzare l'API Stream per ottenere lo stesso risultato:

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

È importante sapere che il metodo sum () supporta solo flussi di tipo primitivo.

Se vogliamo usare uno stream su un valore Integer boxed , dobbiamo prima convertire lo stream in IntStream usando il metodo mapToInt .

Dopodiché, possiamo applicare il metodo sum () al nostro IntStream appena convertito :

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

Puoi leggere molto di più sull'API Stream qui.

3. Trova la media in un array Java

3.1. Media senza l'API Stream

Una volta che sappiamo come calcolare la somma degli elementi dell'array, trovare la media è piuttosto semplice, poiché Media = Somma di elementi / Numero di elementi :

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

Note :

  1. Dividere un int per un altro int restituisce un risultato int . Per ottenere una media precisa, ci primo cast somma a raddoppiare .
  2. Java Array ha un campo di lunghezza che memorizza il numero di elementi nell'array.

3.2. Media utilizzando l'API Java Stream

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

IntStream.average () restituisce un OptionalDouble che potrebbe non contenere un valore e che necessita di una gestione speciale.

Maggiori informazioni sugli Optionals in questo articolo e sulla classe OptionalDouble nella documentazione di Java 8.

4. Conclusione

In questo articolo, abbiamo esplorato come trovare la somma / media degli elementi dell'array int .

Come sempre, il codice è disponibile su Github.