Reduce,yqj2065译为归约/归结。We can reduce his speech to three sentences.他的哔哔哔哔,我们可以归总为3句话。
对于数组或List,我们可以设计一些宏观上的操作。如将它们视为信号,按照信号处理的方式,设计过滤/filter、映射/map和累积/accumulate方法。本节介绍信号处理的Map-Reduce(映射-归总)模型以及它们为什么不适合用于集合。
要点:
- Map-Reduce并不神秘
- Map-Reduce需要流,流的核心——如同基本for循环一样的,对于数据序列中的每一个元素,进行过滤和累积,然后再提供下一个数据。数据序列的供给过程和使用过程交替进行
1. MapReduce模型
假设求解问题:
- 求[a,b]之间素数的和
- 输出0-x之间符合条件(例如 3的倍数而且含5的或者含7)的数
- 打印[10000,100000000]之间第一个素数
通常程序员容易地针对具体问题给出方案。
public static long sum(long a, long b) {
long result = 0;
for (long i = a; i <= b; i++) {
if (