Объясните пожалуйста разницу между reduction и mutable reduction. В документации Oracle описано, метод класса Stream reduce() это reduction, метод collect() -это mutable reduction.
int sum = numbers.stream().reduce(0, Integer::sum)
Здесь понятно, что из множества значений получают одно - сумму. Т.е "сократили".
Не понятно, в чём заключается reduction в случае с collect(). Я воспринимаю метод collect() просто как способ конвертации потока в коллекцию. Г.Шилдт в русской редации Полного руководства Java8 даёт определение потока "как последовательность объектов.В самом потоке данные не хранятся, а только перемещаются". Т.е попросту поток "разложили по полочкам" внутри коллекции. Было 5 эл-ов в потоке, стало 5 эл-ов в колекции. Образно говоря: Есть источник данных - файл, исходная коллекция, массив. Это бочка с водой. Присоединён шланг - это поток. Из шланга вода разливается по бутылкам - коллекция.
Обе эти терминальные операции reduce()
и collect()
преобразуют значения в стриме в результирующий объект, только в случае случае с reduce()
обычно получается иммутабельный объект, а в случае с collect()
- потенциально мутабельный
——
Достаточно неплохо об этом написано в javadoc
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
помогите пожалуйста мне нужно обрезать половину строки в javascript, но я не знаю самого слова, что мне делать?
Изучаю jQuery как и js не долго, хотелось бы узнать, чтобы скрипт в шапке работал (и чтобы его не перемещать куда то в footer, допустим)нужно использовать
Возник вопрос с прокруткой фотографий на сайтеЯ имею виду, чтобы на сайте фотографии прокручивались автоматически
Задача заключается в том что бы вывести самое большое число из массива массива,и запихнуть в отдельный массивУ меня получилось так