reduce()这个方法可能平时用得不多,因为它的常用方法都被单独封装起来了。比如sum()
、max()
、min()
、count()都是通过reduce()操作的。
reduce()是下面三个方法
Optional<T> reduce(BinaryOperator<T> accumulator)
T reduce(T identity, BinaryOperator<T> accumulator)
<U> U reduce(U identity, BiFunction<U,? super T,U> accumulator, BinaryOperator<U> combiner)
主要功能 是单参数方法的 ,下面两个一个增加初始值identity,一个是增加并行处理时,多段值的操作。
下面 看例子:
//找出最大数
Optional<Integer> student = Stream.of(1, 2, 3, 4, 5, 6).reduce((v1, v2) -> v1 > v2 ? v1 : v2);
System.out.println(student.get());
上面输出结果:
6
两个参数的测试:
//设置一个默认值,从默认值开始处理
Integer result = Stream.of(1, 2, 3, 4, 5, 6).reduce(0, (v1, v2) -> v1 + v2);
System.out.println(result);
输出结果:
21
下面看三个参数例子:
Integer studentId = Stream.of(1, 2, 3, 4, 5, 6).reduce(0,
(sum, v) -> {
return sum + v;
},
(s1, s2) -> s1 + s2);
输出结果:
21
如果在不使用并行处理的时候,三个参数跟两个参数的方法功能一模一样,而且后面s1跟s2的处理不起到 任何作用的,当加上并行处理 后,结果可以处理多个并行处理的结果再次 处理 ,下面再来个例子 :
Integer studentId = Stream.of(1, 2, 3, 4, 5, 6).parallel().reduce(0,
(sum, v) -> {
return sum + v;
},
(s1, s2) -> s1 * s2);
System.out.println(studentId);
处理结果:
720
将 多个并行 处理结果相乘
文章浏览阅读1.3k次。介绍 Git Bash 的默认界面配色._windows平台 gitbash 配色
文章浏览阅读249次。在C++中,动态内存分配是一把双刃剑,一方面,直接访问内存地址提高了应用程序的性能,与使用内存的灵活性;另一方面,由于程序没有正确地分配与释放造成的例如野指针,重复释放,内存泄漏等问题又严重影响着应用程序的稳定性。人们尝试着不同的方案去避免这个问题,比较常用的如智能指针,自动垃圾回收等,这些要么影响了应用程序的性能,要么仍然需要依赖于开发者注意一些规则,要么给开发者带来了另外一些很丑陋的用法(实际上笔者很不喜欢智能指针)。因此,优秀的C++内存管理方案需要兼顾性能,易用性,所以到目前为止C++标准都没有_cocos2dx 删除节点析构函数
文章浏览阅读8.7k次,点赞2次,收藏6次。本篇文章主要介绍了SpringMVC使用MultipartFile实现文件的上传,本地的文件上传到资源服务器上,比较好的办法就是通过ftp上传。这里是结合SpringMVC+ftp的形式上传的,有兴趣的可以了解一下。如果需要实现跨服务器上传文件,就是将我们本地的文件上传到资源服务器上,比较好的办法就是通过ftp上传。这里是结合SpringMVC+ftp的形式上传的。我们需要先懂得如何配_py multipartfile上传文件 springmvc接
文章浏览阅读501次,点赞2次,收藏2次。IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Ja.._ideaie
文章浏览阅读2.7w次,点赞14次,收藏26次。让坐标轴单位长度相同今天画开封铁塔的模拟图,代码如下:clcclearclose allload A_1986c1 = 1:8:104; c2 = 8:8:104; C = [c1;c2]';x = A_1986(:,1);y = A_1986(:,2);z = A_1986(:,3);x_center = center_86(:,1);y_center = center_86(:..._matlab坐标轴长度相同
文章浏览阅读6.8k次,点赞21次,收藏70次。1.斐波那契##编写斐波那契数列的函数并调用def fib(n):##n是形参 a,b =1,1 while a<n: print(a,end=' ') a,b=b,a+b print(a,b)fib(1000)_python函数经典例程
文章浏览阅读649次。本篇博客主要讲述一下对startActivity进行hook,对于Android开发来说,跳转一个新的Activity页面,最常见的无非两种了,方法一:Intent intent = new Intent(MainActivity.this, NewActivity.class);startActivity(intent);方法二:Intent intent = new Intent(..._hook startactivity
文章浏览阅读554次。1.新建一个同名的数据库(数据文件与原来的要一致)2.再停掉sql server(注意不要分离数据库)3.用原数据库的数据文件覆盖掉这个新建的数据库4.再重启sql server5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行..._没安装sqlserver navicat premium 16 怎么打开.mdf文件
文章浏览阅读101次。java程序员学技术的网站哔哩哔哩https://www.bilibili.com/ CSDNhttps://www.csdn.net/nav/java 掘金https://juejin.cn/ 简书https://www.jianshu.com/ 博客园https://www.cnblogs.com/ 慕课网https://www.imooc.com/ GooGleVip8http://googlevip8.com githubhttp://github.com/ 码云..._chungwe java
文章浏览阅读713次。Linux 获取本机网卡IP和Mac地址_linux获取本机mac地址函数
文章浏览阅读5.3w次,点赞194次,收藏743次。热门系列: 【Java 8系列】Java开发者的判空利器 -- Optional 【Java 8系列】Lambda 表达式,一看就废 程序人生,精彩抢先看 1.前言2.正文3.总结..._java8 stream
文章浏览阅读1.4k次。Redis tool listHere is a Redis tool list. I hope you will find one or two of them that you’d like to try out.Table of ContentsRedis ClusterRedis VarietyRedis ProxyRedis ModuleRedis ClientRedi..._redis-cerberus