Demmerova metoda

Pokud plánujete provádět operace s velkým objemem dat, pak vám s tím určitě pomůže Java Stream API a jeho metody. Zapamatovat si je není tak těžké. Dnes se podíváme na **metodu pro sčítání čísel v příkladu výše – IntStream.sum()**. Hlavním úkolem této metody je **přidat všechny prvky vybraného streamu**. Zároveň s ním můžeme snadno sečíst (nebo vynásobit, chcete-li) libovolné číslo nebo booleovskou hodnotu. Ano, nakonec dostaneme dvojitou hodnotu, ale v Javě jsme na dvojitý typ zvyklí, protože zde hraje prim. Pojďme to tedy zjistit. A to se vám nepodaří bez znalosti **pokročilejšího funkčního rozhraní java 8** – Supplier. Pokud jsme v Simple stream zvyklí pracovat pouze s metodou sum() s jednou kořenovou kolekcí, která byla dříve specifikována jako zdroj dat, pak pomocí dodavatele** můžeme generovat nové zdroje dat pokaždé bez opakování**. K tomu potřebujeme uvést typ dat, pro která potřebujeme generovat nové zdroje, čímž nastavíme hranice pro metodu. V podstatě vytváříme speciální třídu, která nese hodnoty a provádí některé operace, například vytváří vlákno. Bude to vypadat takto: Zdroj zdroj = dodavatel::get;

V Java8 to vypadá asi takto:

public int[] sumSources(int[] číslaPole) { int součet = číslaPole.délka == 0? 0 : číslaPole[0]; final int[] arr = new int[číslaPole.délka]; for(int i = 0, j = 1; i < numbersArray.lenght ; i++) arr[i] = rown[i] + arr[i]; // создаем новый источник для последующего запроса методов с помощью Stream api return arr; } Тут у нас есть генератор источника и запрашивающий. Нет ли