Деммера Метод

Якщо ви плануєте робити операцію з великими обсягами даних, то вам точно допоможе Java Stream API і його методи. Запам'ятати їх не так вже й складно. Сьогодні розглянемо метод для підсумовування чисел у прикладі вище - IntStream.sum (). Основне завдання даного методу - скласти всі елементи обраного потоку. При цьому будь-яке число чи булеве значення ми без проблем складаємо (або множимо, якщо завгодно) з ним. Так, зрештою ми отримуємо double-значення, але Java ми звикли до типу double, тому що він тут грає провідну роль. Отже, розберемося. А зробити це і не вийде без знання більш просунутого функціонального інтерфейсу java 8 - Supplier. Якщо Simple stream we звикли одним лише методом sum() оперувати з однією корінною колекцією, яка до цього була вказана як джерело даних, то використовуючи supplier** ми можемо генерувати нові джерела даних щоразу без повторень**. Для цього нам потрібно вказати тип даних, для яких нам потрібна генерація нових джерел, тим самим ми встановимо межі для методу. По суті ми створюємо особливий клас, який несе значення та виконує якісь операції, наприклад, створює потік. Виглядатиме це ось так: Джерело джерел = supplier::get;

У Java8 це виглядає приблизно так:

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