Hvis du planlegger å utføre operasjoner med store datamengder, vil Java Stream API og dets metoder definitivt hjelpe deg med dette. Å huske dem er ikke så vanskelig. I dag skal vi se på **metoden for å summere tall i eksemplet ovenfor - IntStream.sum()**. Hovedoppgaven til denne metoden er å **legge til alle elementer i den valgte strømmen**. Samtidig kan vi enkelt legge til (eller multiplisere, hvis du vil) et hvilket som helst tall eller boolsk verdi med det. Ja, til slutt får vi en dobbel verdi, men i Java er vi vant til den doble typen, fordi den spiller en ledende rolle her. Så la oss finne ut av det. Og du vil ikke kunne gjøre dette uten kunnskap om det **mer avanserte funksjonelle grensesnittet til java 8** – Leverandør. Hvis vi i Simple stream er vant til å operere med bare sum()-metoden med én rotsamling, som tidligere ble spesifisert som en datakilde, kan vi ved å bruke leverandør** generere nye datakilder hver gang uten repetisjon**. For å gjøre dette må vi indikere hvilken type data vi trenger for å generere nye kilder, og dermed setter vi grensene for metoden. I hovedsak lager vi en spesiell klasse som bærer verdier og utfører noen operasjoner, for eksempel å lage en tråd. Det vil se slik ut: Kildekilde = leverandør::get;
I Java8 ser det omtrent slik ut:
public int[] sumSources(int[] numbersArray) { int sum = numbersArray.length == 0? 0 : tallArray[0]; final int[] arr = new int[numbersArray.length]; for(int i = 0 , j = 1 ; i < numbersArray.lenght ; i++) arr[i] = rown[i] + arr[i]; // создаем новый источник для последующего запроса методов с помощью Stream api return arr; } Тут у нас есть генератор источника и запрашивающий. Нет ли