zoukankan      html  css  js  c++  java
  • lambda表达式之常用方法parallelStream,stream

    引用:通过lambda表达式快速从一个集合中捞取数据生成一个新的集合。

    一、parallelStream,stream

    List<Integer> i=Arrays.asList(1,2,3,4,5,6,7);
    System.out.println("stream.forEach打印结果如下");
    i.stream().forEach(System.out :: println);//固定结果 1234567
    System.out.println("parallelStream.forEach打印结果如下");
    i.parallelStream().forEach(System.out :: println);//每次的结果都不同
    System.out.println("parallelStream.forEachOrdered打印结果如下");
    i.parallelStream().forEachOrdered(System.out :: println);//结果同stream.forEach

    对比发现parallelStream执行效率要比传统的for循环和stream要快的多,
    parallelStream是多线程执行。


    那么什么时候要用stream或者parallelStream呢?可以从以下三点入手考虑

    是否需要并行? 

    任务之间是否是独立的?是否会引起任何竞态条件?
    结果是否取决于任务的调用顺序?

    二、parallelStream、stream常用方法 --filter,map,count

    List<Integer> i=Arrays.asList(1,2,3,4,5,6,7);

    //过滤集合i中保留大于5的数字放入到新的集合中
    List<Integer> collect = i.stream().filter(integer -> integer > 5).collect(Collectors.toList()); //[6,7]
    //过滤集合i中保留大于5的数字,并将得到的数字乘以10放入到新的集合中
    List<Integer> collect = i.stream().filter(integer -> integer > 5).map(integer->integer*10).collect(Collectors.toList());//[60,70]

    long count = i.stream().filter(integer -> integer > 5).map(integer -> integer * 10).count();  // 2

  • 相关阅读:
    std 迭代器的几种用法
    Cocos2dx3.1+xcode +lua配置
    php获取文件创建时间、修改时间
    如何创建一个基于jquery的编辑器
    封装ajax,简单的模仿jquery提交
    如何实现SQL事务的提交,又不对外进行污染
    .net mvc结合微软提供的FormsAuthenticationTicket登陆
    Http GET、Post方式的请求总结
    post 报文请求接口方法
    zip格式压缩、解压缩(C#)
  • 原文地址:https://www.cnblogs.com/liyifang/p/13847872.html
Copyright © 2011-2022 走看看