Jos aiot suorittaa toimintoja suurilla tietomäärillä, Java Stream API ja sen menetelmät auttavat sinua varmasti tässä. Niiden muistaminen ei ole niin vaikeaa. Tänään tarkastelemme **lukujen summausmenetelmää yllä olevassa esimerkissä - IntStream.sum()**. Tämän menetelmän päätehtävä on **lisää kaikki valitun streamin elementit**. Samalla voimme helposti lisätä (tai kertoa, jos haluat) minkä tahansa luvun tai Boolen arvon sen kanssa. Kyllä, lopulta saamme kaksinkertaisen arvon, mutta Javassa olemme tottuneet kaksoistyyppiin, koska sillä on tässä johtava rooli. Otetaanpa siis selvää. Etkä voi tehdä tätä ilman tietoa **java 8:n** edistyneemmästä toiminnallisesta käyttöliittymästä – Toimittaja. Jos Simple streamissa olemme tottuneet toimimaan pelkällä sum()-menetelmällä yhdellä juurikokoelmalla, joka oli aiemmin määritetty tietolähteeksi, niin toimittajaa** käyttämällä voimme luoda uusia tietolähteitä joka kerta ilman toistoa**. Tätä varten meidän on ilmoitettava datatyyppi, jolle meidän on luotava uusia lähteitä, jolloin asetamme menetelmän rajat. Pohjimmiltaan luomme erikoisluokan, joka kuljettaa arvoja ja suorittaa joitain toimintoja, esimerkiksi luomalla säikeen. Se näyttää tältä: Lähdelähde = toimittaja::get;
Java8:ssa se näyttää suunnilleen tältä:
public int[] summaLähteet(int[] numerotMatriisi) { int summa = numerotMatriisi.pituus == 0? 0 : numbersArray[0]; final int[] arr = uusi int[numerotArray.length]; for(int i = 0, j = 1; i < numbersArray.lenght ; i++) arr[i] = rown[i] + arr[i]; // создаем новый источник для последующего запроса методов с помощью Stream api return arr; } Тут у нас есть генератор источника и запрашивающий. Нет ли