int num =6;
IntStream zs =IntStream.rangeClosed(1,6);
int ok =zs.reduce(1,(a,b)->a*b);
System.out.println(ok);
reduce是什么意思,为什么要使用它
reduce 简单来说就是为了做归并计算,即将stream中的元素,通过指定的函数完成计算,返回一个最终结果,其好处就是可以并行计算,充分利用CPU提高效率。
比如你问题中的这个,就相当于将所有数字相加求和。reduce是可以并行计算的,也就是可以充分利用CPU。这样也就要求reduce方法提供的函数,必须是无序执行时不影响结果的,满足交换律和结合律。
例如求和时,1 + 2 + 3 + 4 = (1+2) + (3+4)。