美文网首页工作生活
Java8并行流与并行排序

Java8并行流与并行排序

作者: 夏与清风 | 来源:发表于2019-07-04 16:11 被阅读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高并发程序设计》

    相关文章

      网友评论

        本文标题:Java8并行流与并行排序

        本文链接:https://www.haomeiwen.com/subject/xyifhctx.html