Java8并行流与并行排序

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高并发程序设计》

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容