Keresse meg az összeget és az átlagot egy Java tömbben

1. Bemutatkozás

Ebben a gyors bemutatóban kitérünk arra, hogy miként számolhatjuk egy tömbben az összeget és az átlagot a Java standard hurkok és a Folyam API.

2. Keresse meg a tömb elemek összegét

2.1. Összeg a Mert Hurok

A tömb összes elemének összegének megtalálásához egyszerűen megismételhetjük a tömböt, és minden elemet hozzáadhatunk az a-hoz összeg felhalmozódnakváltozó.

Ez nagyon egyszerűen a-val kezdődik összeg 0-ról, és menet közben adja hozzá a tömb minden egyes elemét:

public static int findSumWithoutUsingStream (int [] tömb) {int összeg = 0; for (int érték: tömb) {összeg + = érték; } visszatérési összeg; }

2.2. Összegzés a Java Stream API-val

Használhatjuk a Stream API-t ugyanazon eredmény eléréséhez:

public static int findSumUsingStream (int [] tömb) {return tömbök.stream (tömb) .sum (); }

Fontos tudni, hogy a összeg() módszer csak a primitív típusú folyamokat támogatja.

Ha egy patakot akarunk használni dobozosra Egész szám értéket, először át kell alakítanunk a folyamot IntStream használni a mapToInt módszer.

Ezt követően alkalmazhatjuk a összeg() módszer az újonnan megtért IntStream:

public static int findSumUsingStream (Integer [] tömb) {return tömbök.stream (tömb) .mapToInt (Integer :: intValue) .sum (); }

Sokkal többet olvashat a Stream API-ról itt.

3. Keresse meg az átlagot egy Java tömbben

3.1. Átlagos a Stream API nélkül

Miután tudjuk, hogyan kell kiszámítani a tömb elemek összegét, az átlag megkeresése elég egyszerű - mint Átlagos = Elemek összege / Elemek száma:

nyilvános statikus kettős findAverageWithoutUsingStream (int [] tömb) {int összeg = findSumWithoutUsingStream (tömb); return (double) összeg / tömb.hossz; }

Megjegyzések:

  1. O int egy másik által int visszatér egy int eredmény. A pontos átlag elérése érdekében először öntöttünk összeg nak nek kettős.
  2. Jáva Sor van egy hossz mező, amely a tömbben található elemek számát tárolja.

3.2. Átlagos a Java Stream API használatával

public static double findAverageUsingStream (int [] tömb) {return tömbök.folyam (tömb) .átlag (). vagyElse (kettős.NaN); }

IntStream.average () visszatér egy OpcionálisDupla amely nem tartalmazhat értéket és amely külön kezelést igényel.

További információ erről Opcionális ebben a cikkben és a OpcionálisDupla osztály a Java 8 dokumentációban.

4. Következtetés

Ebben a cikkben azt kutattuk, hogyan lehet megtalálni az összeg / átlag értékét int tömb elemek.

Mint mindig, a kód elérhető a Githubon.