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:
- 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.
- 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.