工作生活

Java8并行流与并行排序

2019-07-04  本文已影响0人  夏与清风

1、使用并行流过滤数据

案例:统计1-1000000内所有的质数数量。

并行统计质数总数

2、从集合中得到并行流

在函数式编程中,我们可以从集合中得到一个流或并行流。例如从学生集合中统计平均分:

List<Student> list =new ArrayList<>();

double avg = list.stream().mapToInt(s->s.score).average().getAsDouble();

stream()方法可以获得一个流,若想并行执行,可以使用parallelStream()方法:

double avg = list.parallelStream().mapToInt(s->s.score).average().getAsDouble();

3、并行排序

除了并行流之外,普通数组也可以并行化。如数组排序可以使用Arrays.parallelSort(arr)并行排序。

int[] arr =new int[]{12,52,4,56,6,7,3};

Arrays.parallelSort(arr);

对数组中数据赋值方法:

setAll()

第一个参数是给定的数组,第二个参数是一个函数式接口。使用方式:

Arrays.setAll(arr,(i)->10); //串行执行,给arr数组增加元素10

Arrays.parallelSetAll(arr,(i)->10); //并行执行,给arr数组增加元素10

--参考文献《实战Java高并发程序设计》

上一篇 下一篇

猜你喜欢

热点阅读