当前位置: 首页 > news >正文

公司网站建设ppt上海网络推广培训机构

公司网站建设ppt,上海网络推广培训机构,品牌营销推广要怎么做,一个wordpress的爱好者Stream API为我们提供了Stream.reduce用来实现集合元素的归约。reduce函数有三个参数: Identity标识:一个元素,它是归约操作的初始值,如果流为空,则为默认结果。Accumulator累加器:具有两个参数的函数&…

Stream API为我们提供了Stream.reduce用来实现集合元素的归约。reduce函数有三个参数:

  • Identity标识:一个元素,它是归约操作的初始值,如果流为空,则为默认结果。
  • Accumulator累加器:具有两个参数的函数:归约运算的部分结果和流的下一个元素。
  • Combiner合并器(可选):当归约并行化时,或当累加器参数的类型与累加器实现的类型不匹配时,用于合并归约操作的部分结果的函数。
    注意观察上面的图,我们先来理解累加器:
  • 阶段累加结果作为累加器的第一个参数
  • 集合遍历元素作为累加器的第二个参数

Integer类型归约

reduce初始值为0,累加器可以是lambda表达式,也可以是方法引用。

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
int result = numbers.stream().reduce(0, (subtotal, element) -> subtotal + element);
System.out.println(result);  //21int result = numbers.stream().reduce(0, Integer::sum);
System.out.println(result); //21

String类型归约

不仅可以归约Integer类型,只要累加器参数类型能够匹配,可以对任何类型的集合进行归约计算。

List<String> letters = Arrays.asList("a", "b", "c", "d", "e");
String result = letters.stream().reduce("", (partialString, element) -> partialString + element);
System.out.println(result);  //abcdeString result = letters.stream().reduce("", String::concat);
System.out.println(result);  //ancde

复杂对象归约

计算所有的员工的年龄总和。

Employee e1 = new Employee(1,23,"M","Rick","Beethovan");
Employee e2 = new Employee(2,13,"F","Martina","Hengis");
Employee e3 = new Employee(3,43,"M","Ricky","Martin");
Employee e4 = new Employee(4,26,"M","Jon","Lowman");
Employee e5 = new Employee(5,19,"F","Cristine","Maria");
Employee e6 = new Employee(6,15,"M","David","Feezor");
Employee e7 = new Employee(7,68,"F","Melissa","Roy");
Employee e8 = new Employee(8,79,"M","Alex","Gussin");
Employee e9 = new Employee(9,15,"F","Neetu","Singh");
Employee e10 = new Employee(10,45,"M","Naveen","Jain");List<Employee> employees = Arrays.asList(e1, e2, e3, e4, e5, e6, e7, e8, e9, e10);Integer total = employees.stream().map(Employee::getAge).reduce(0,Integer::sum);
System.out.println(total); //346
  • 先用map将Stream流中的元素由Employee类型处理为Integer类型(age)。
  • 然后对Stream流中的Integer类型进行归约

Combiner合并器的使用

除了使用map函数实现类型转换后的集合归约,我们还可以用Combiner合并器来实现,这里第一次使用到了Combiner合并器。因为Stream流中的元素是Employee,累加器的返回值是Integer,所以二者的类型不匹配。这种情况下可以使用Combiner合并器对累加器的结果进行二次归约,相当于做了类型转换。

Integer total3 = employees.stream().reduce(0,(totalAge,emp) -> totalAge + emp.getAge(),Integer::sum); //注意这里reduce方法有三个参数
System.out.println(total); //346

计算结果和使用map进行数据类型转换的方式是一样的。

并行流数据归约(使用合并器)

对于大数据量的集合元素归约计算,更能体现出Stream并行流计算的威力。

我觉得你可能真的还不会Java

 

在进行并行流计算的时候,可能会将集合元素分成多个组计算。为了更快的将分组计算结果累加,可以使用合并器。

Integer total2 = employees.parallelStream().map(Employee::getAge).reduce(0,Integer::sum,Integer::sum);  //注意这里reduce方法有三个参数System.out.println(total); //346
http://www.lbrq.cn/news/2386585.html

相关文章:

  • 东莞大型网站建设公司百度收录提交入口网址
  • 辽宁seo推广软件seo外包公司兴田德润
  • 广州网站建设招标职业培训热门行业
  • ui设计手机app页面尺寸福清市百度seo
  • 漯河网站建设e微信公众号运营推广方案
  • 网络直播网站建设广西seo
  • 网站做蜘蛛池有用吗天津百度推广排名优化
  • 知企业网站怎么打不开seo优化专员招聘
  • 网站栏目划分苏州手机关键词优化
  • excel网站链接怎么做seo网站推广经理
  • 东莞哪家做网站好发布软文是什么意思
  • 九龙坡做网站广告软文范例大全100
  • 株洲芦淞区疫情最新情况网站优化软件哪个好
  • 只有做推广才能搜索到网站吗淘宝推广费用多少钱一天
  • 国外做枪视频网站产品推广策略怎么写
  • 服装鞋帽 网站建设cms网站
  • 大连装修公司哪家好东莞seo外包平台
  • 网站建设优化之优化关键字中国旺旺(00151) 股吧
  • 昆明360网站制作互联网销售
  • 建设一个企业网站要多少钱seo是什么化学名称
  • wordpress免费的模板seo描述快速排名
  • 做python项目的网站2023年免费进入b站
  • 网站用户体验解决方案外包公司和劳务派遣
  • 教育网站 php百度首页优化
  • 门户网站直接登录系统google 浏览器
  • 尚云网站建设seminar是什么意思
  • 污染网站代码seo流量
  • 桐乡建设规划局网站seo优化的价格
  • 网站tdk设置界面排名优化公司口碑哪家好
  • 万网主机怎么做网站大数据网站
  • [MarkdownGithub] 使用块引用高亮显示“注意“和“警告“和其他注意方式的选项
  • Private Equity(PE)Investment Banking(IB)
  • 2025外卖江湖:巨头争霸,谁主沉浮?
  • 根据用户id自动切换表查询
  • Linux操作系统之线程:分页式存储管理
  • 在 OpenSUSE Tumbleweed 和 Leap 上安装 VirtualBox