Zoek som en gemiddelde in een Java-array

1. Inleiding

In deze korte tutorial bespreken we hoe we som en gemiddelde in een array kunnen berekenen met behulp van zowel Java-standaardlussen als de Stroom API.

2. Zoek de som van array-elementen

2.1. Som met behulp van een Voor Lus

Om de som van alle elementen in een array te vinden, we kunnen de array eenvoudig herhalen en elk element toevoegen aan een som accumulerenvariabele.

Dit begint heel eenvoudig met een som van 0 en voeg elk item in de array toe als we gaan:

openbare statische int findSumWithoutUsingStream (int [] array) {int sum = 0; for (int waarde: array) {som + = waarde; } retourbedrag; }

2.2. Som met de Java Stream API

We kunnen de Stream API gebruiken om hetzelfde resultaat te bereiken:

openbare statische int findSumUsingStream (int [] array) {return Arrays.stream (array) .sum (); }

Het is belangrijk om te weten dat de som() methode ondersteunt alleen streams van het primitieve type.

Als we een stream op een boxed willen gebruiken Geheel getal waarde, moeten we eerst de stream converteren naar IntStream de ... gebruiken mapToInt methode.

Daarna kunnen we de som() methode naar onze nieuw geconverteerde IntStream:

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

Je kunt hier veel meer lezen over de Stream API.

3. Zoek het gemiddelde in een Java-array

3.1. Gemiddeld zonder de Stream API

Als we eenmaal weten hoe we de som van array-elementen moeten berekenen, is het vinden van het gemiddelde vrij eenvoudig - zoals Gemiddelde = som van elementen / aantal elementen:

openbare statische dubbele findAverageWithoutUsingStream (int [] array) {int sum = findSumWithoutUsingStream (array); return (dubbel) som / array.length; }

Opmerkingen:

  1. Een int door iemand anders int geeft een int resultaat. Om een ​​nauwkeurig gemiddelde te krijgen, casten we eerst som naar dubbele.
  2. Java Array heeft een lengte veld waarin het aantal elementen in de array wordt opgeslagen.

3.2. Gemiddeld met behulp van de Java Stream API

openbare statische dubbele findAverageUsingStream (int [] array) {return Arrays.stream (array) .average (). orElse (Double.NaN); }

IntStream.average () geeft een Optioneel Dubbel die geen waarde mag bevatten en die een speciale behandeling nodig heeft.

Lees er meer over Optioneel in dit artikel en over de Optioneel Dubbel klasse in de Java 8-documentatie.

4. Conclusie

In dit artikel hebben we onderzocht hoe we de som / het gemiddelde kunnen vinden van int array-elementen.

Zoals altijd is de code beschikbaar op Github.