并行化流

Java8中可以在接口不变的情况下,将流改为并行流,这样很自然地使用多线程进行集合中的数据处理。并行化操作流只需要改变一个方法调用,如果已经是一个Stream对象,调用它的parallel方法就能让其拥有并行操作的能力;如果想从一个集合类创建一个流,调用parallelStream就能立即获得一个拥有并行能力的流。

简单的例子,统计1~1000000内所有的质数的数量。

//判断一个数是否为质数,是返回true,不是返回false

private static boolean isPrime(int number) {

int x = number;

if (x < 2) {

return false;

}

for (int i = 2; i <= Math.sqrt(x); ++i) {

if (x % i == 0) {

return false;

}

}

return true;

}

使用函数式编程统计给定范围内所有的质数。(串行操作)

long count = IntStream.range(1,1000000).filter(Test::isPrime).count();

使用函数式编程统计给定范围内所有的质数。(并行操作)

//parallel()方法得到一个并行流,在并行流上进行过滤

long count = IntStream.range(1,1000000).parallel().filter(Test::isPrime).count();

输出结果:采用并行流操作方式时间是串行操作的时间一半不到。

使用函数式编程,并行化流操作统计一个数字列表的和。

java isprime函数_Java8函数式编程入门相关推荐

  1. java调用平方函数,Java8函数式编程入门

    流式调用 CompletionStage有约40个方法是为函数式编程做准备的,通过CompletionStage提供的接口,可以在一个执行结果上进行多次流式调用,以此得到最终结果. 例子,异步计算10 ...

  2. java interface 函数_java8函数式接口(Functional Interface)

    介绍 函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口. 函数式接口可以被隐式转换为 lambda 表达式(箭头函数). 函数式接口代 ...

  3. java interface 函数_Java8 函数式接口(Functional Interface),有且仅有一个抽象方法...

    从 Java 8 开始便出现了函数式接口(Functional Interface,以下简称FI) 定义为: 如果一个接口只有唯一的一个抽象接口,则称之为函数式接口.为了保证接口符合 FI ,通常会在 ...

  4. java convert函数_Java 函数式编程和Lambda表达式

    1.Java 8最重要的新特性 Lambda表达式.接口改进(默认方法)和批数据处理. 2.函数式编程 本质上来说,编程关注两个维度:数据和数据上的操作. 面向对象的编程泛型强调让操作围绕数据,这样可 ...

  5. Java 函数式编程入门

    Java 函数式编程入门 函数式编程实战 改进 完整代码   像 JavaScript 这种语言很早就支持闭包了,虽然 C++ 很早就有了函数指针,Java 也很早就提供了反射中的 Method 类, ...

  6. 专访《Haskell函数式编程入门》作者张淞:浅谈Haskell的优点与启发

    张淞,Haskell语言爱好者,著有<Haskell函数式编程入门>一书.目前就职于网易杭州研究院.在10月15日~17日的QCon上海2015上,他将分享<Haskell中的函数与 ...

  7. 《Haskell函数式编程入门》—— 第1章,第1.5节第一个Haskell程序HelloWorld!

    本节书摘来自异步社区<Haskell函数式编程入门>一书中的第1章,第1.5节第一个Haskell程序HelloWorld!,作者 张淞,更多章节内容可以访问云栖社区"异步社区& ...

  8. 《Haskell函数式编程入门》——导读

    本节书摘来自异步社区<Haskell函数式编程入门>一书中的导读,作者 张淞,更多章节内容可以访问云栖社区"异步社区"公众号查看 第1章Haskell简介 第1章第1节 ...

  9. 第5章 函数与函数式编程

    第5章 函数与函数式编程 凡此变数中函彼变数者,则此为彼之函数. ( 李善兰<代数学>) 函数式编程语言最重要的基础是λ演算(lambda calculus),而且λ演算的函数可以传入函数 ...

  10. JavaScript函数式编程入门经典

    一个持续更新的github笔记,链接地址:Front-End-Basics,可以watch,也可以star. 此篇文章的地址:JavaScript函数式编程入门经典 正文开始 什么是函数式编程?为何它 ...

最新文章

  1. uniapp富文本兼容视频实现方案
  2. C#参考之方法参数关键字:params、ref及out
  3. Android中Log信息的输出方法
  4. 记录——oracle数据库备份
  5. mysql找不到performance_Mysql安装完毕运行时没有mysql和performance_schema数据库_MySQL
  6. C语言 int y=10 do,删除学生信息算法执行完case10输入y 之后do whil
  7. ssh免密码登陆设置
  8. 人像处理:不要用减淡工具了!用柔光叠加去擦!加深也不如正片叠底
  9. [Spark]-编译(2.3.1)部署(YARN-Cluster)
  10. Packet Voice Modeling 语音包模型
  11. 三款免费好用的代码对比工具,丢弃BeyondCompare
  12. Windows XP 默认蓝色桌面的 RGB
  13. Copy On Write机制了解一下
  14. 科创人·望繁信创始人索强:中国版流程挖掘注定有完全不同的活法
  15. 比尔·盖茨买百万亩农地成美“头号地主”,图扑数字孪生农场
  16. 推荐一个制作卡通头像的网站(超强)
  17. Xilinx FIFO使用小结
  18. 99.99%人都不知道的“##“里用法
  19. java对接自动充电桩_充电桩自动对接装置的制作方法
  20. Python之selenium爬虫实战爬取表情包

热门文章

  1. 数字图像处理(三)图像复原(噪声生成,噪声滤波器,逆滤波,维纳滤波,有约束最小二乘恢复)
  2. vue中使用vue-quill-editor富文本编辑器
  3. pngquant failed to build, make sure that libpng-dev is installed
  4. week15(字符串集合:Hash、字典树、KMP)
  5. STM32F407读取ADS1115数据
  6. 三泰串口卡linux驱动,工业多串口卡.pdf
  7. c++ primer plus 第十四章 C++中的代码重用
  8. 大学计算机考试考操作吗,大学计算机期末考试系统操作流程.doc
  9. Python&Opencv手势识别系统(完整源码&自定义UI操作界面&视频教程)
  10. 【软件技能】Perl 基础用法