[五]java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用...
reduce-归约
T result = identity;
for (T element : this stream)
result = accumulator.apply(result, element)
return result;
累计运算的概念
计算1,2,3,4,5 的和,并且初始值为3
也就是计算3+1+2+3+4+5
|
结果重新作为一个参数,不断地参与到运算之中,直到最后结束
|
Stream的一个参数和两个参数的方法的基本逻辑都是如此
差别仅仅在于一个参数的是result R = T1 ,然后再继续与剩下的元素参与运算
|
三个参数的reduce
与两个参数的reduce不同的地方在于类型
双参数的返回类型为T Stream类型为T
三参数的返回类型为U Stream类型为T 有了更大的发挥空间 T可能为U 也可能不是U
|
第一点:identity
的值对于合并运算combiner来说必须是一个恒等式,也就是说对于任意的u, combiner(identity,u) 和u是相同的
从我们上面的并行处理流程可以看得出来,这个result 的初始identity 对于每一个分支都是参与运算的! |
场景
假设说4个元素 1,2,3,4 需要运算
此时假设已经 1,2,3 三组数据已经运算结束,马上要同第四组运算
如果是并行,我们假定1,2,3 在一个分支 4单独在另一分支
|
并行时
U为已经计算好的1,2,3后的结果 接下来要与另一组的4 合并
T4则是identity与T参与运算
上面的图就是
combiner.apply(u, accumulator.apply(identity, t))
|
非并行运算 u 直接与下一个元素进行结合运算 |
转载于:https://www.cnblogs.com/noteless/p/9511407.html
[五]java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用...相关推荐
- java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用
java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用
- Java函数式编程(Lambda表达式、Stream流用法)
函数式编程 1.函数式编程思想 1.1.1 概念 面向对象思想需要关注用什么对象完成什么事情.而函数式编程思想就类似于我们数学中的函数.它主要关注的是对数据进行了什么操作. 1.1.2 优点 代码 ...
- Java并发编程(06):Lock机制下API用法详解
本文源码:GitHub·点这里 || GitEE·点这里 一.Lock体系结构 1.基础接口简介 Lock加锁相关结构中涉及两个使用广泛的基础API:ReentrantLock类和Condition接 ...
- java8 四大函数式接口 和 用于数据处理的 stream流 使用详解
文章目录 Stream 使用示例 四大函数式接口 Function 功能型接口 Consumer 消费型接口 Supplier 提供型接口 Predicate 断言型接口 常用 api stream, ...
- Java网络编程实现文件上传和下载案例详解
客户端: 文件上传案例的客户端:读取本地文件,上传到服务器,读取服务器回写的数据 明确: 数据源:c:\1.jpg 目的地:服务器 实现步骤: 1.创建一个本地字节输入流FileInputStream ...
- Java基础--String类底层实现原理及API示例详解
- 《深入理解Java函数式编程》系列文章
Introduction 本系列文将帮助你理解Java函数式编程的用法.原理. 本文受启发于JavaOne 2016关于Lambda表达式的相关主题演讲Lambdas and Functional P ...
- 负载均衡原理与实践详解 第三篇 服务器负载均衡的基本概念-网络基础
负载均衡原理与实践详解 第三篇 服务器负载均衡的基本概念-网络基础 系列文章: 负载均衡详解第一篇:负载均衡的需求 负载均衡详解第二篇:服务器负载均衡的基本概念-网络基础 负载均衡详解第三篇:服务器负 ...
- java同步方法完成案例_Java同步代码块和同步方法原理与应用案例详解
本文实例讲述了java同步代码块和同步方法.分享给大家供大家参考,具体如下: 一 点睛 所谓原子性WOmoad:一段代码要么执行,要么不执行,不存在执行一部分被中断的情况.言外之意是这段代码就像原子一 ...
最新文章
- 经理=PD + Architect + PM + HR
- SQLServer中ISNULL、NULLIF和CONVERT函数
- c++ 函数返回引用
- SQL 性能优化梳理,干掉慢SQL!
- 2016全球数据新闻奖(DJA)颁布, 12个获奖作品全剖析
- java swing 组件技术(上)
- 4个变量取最大值 c++_DNF:安徒恩上线服务器爆满,甲板上全是火山C,通关翻出4个金牌...
- 关于机器学习,你应该至少学习这8个落地案例|干货集锦
- mac lion 安装 mysql_mac osx下安装mysql
- MySQL数据库恢复(使用mysqlbinlog命令)
- java 修改 referer_看好你的门-客户端传数据-用java修改referer
- 【转】HDC,CDC,CWindowDC,CClientDC,CPaintDC等等
- java有用还是c有用_这周的有用资源
- Via OpenCv Snake算法
- 【web前端技术】dicebear一句话生成头像
- 关于cocos2d引擎写的手游加速
- 机器学习--PCA(主成分分析)
- LeetCode | 0665. Non-decreasing Array非递减数列【Python】
- 小程序 canvas 绘制图片
- Oracle 11g Release 1 (11.1) 单行函数——(返回字符值)字符函数
热门文章
- Java方法02 递归
- mysql 查询列表是否关注_点赞功能,用mysql还是redis?
- linux rc文件是什么,linux通常使用的 rc 和 .(点)文件
- 计算机基础术语巧记,报考28个专业术语,你都知道吗?掌握这些才算入门!
- f函数java_Java流:对N-1个元素执行f(),对N个元素执行g(),即,最后一个元素使用不同的函数...
- 数据结构折半查找例题_数据结构第9章例题与答案
- 简述java异常机制处理,简述Java中的异常处理机制
- 安卓第二阶段实训预备案例:访问媒体库音频数据
- Specificity考量
- php 获取图片的宽高,JS怎么获取图片当前宽高