**
* 顺序流转为并行流:
* 举例:
* 计算1-n数字之和
*/
public class SeqTransformParallelDemo01 {
public static void main(String[] args) {
//普通的方法
System.out.println(test01(10));
//java 8 的方式
System.out.println(test02(10));
//java 8 并行流的方式
System.out.println(test03(10));
//数学方法,计算机来自于数学。
System.out.println(test04(10));
}
/**
* 最笨的方法
*
* @param n
* @return
*/
public static int test01(int n) {
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}
return sum;
}
/**
* java 8 的方法
*/
public static long test02(int n) {
return Stream.iterate(1L, i -> i + 1).limit(n).reduce(0L, Long::sum);
}
/**
* java 8 的并发流
*/
public static long test03(int n) {
return Stream.iterate(1L, i -> i + 1).limit(n).parallel().reduce(0L, Long::sum);
}
/**
* 数学方法
*/
public static long test04(int n) {
return (1+n)*n/2;
}
}