iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java的Integer类型归约方法是什么
  • 742
分享到

Java的Integer类型归约方法是什么

2023-06-03 14:06:51 742人浏览 安东尼
摘要

本篇内容介绍了“Java的Integer类型归约方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Stream api为我们提供了St

本篇内容介绍了“Java的Integer类型归约方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

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);  //21

int 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类型归约方法是什么

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

Integer total2 = employees
       .parallelStream()
       .map(Employee::getAge)
       .reduce(0,Integer::sum,Integer::sum);  //注意这里reduce方法有三个参数

System.out.println(total); //346

“Java的Integer类型归约方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Java的Integer类型归约方法是什么

本文链接: https://www.lsjlt.com/news/234644.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java的Integer类型归约方法是什么
    本篇内容介绍了“Java的Integer类型归约方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Stream API为我们提供了St...
    99+
    2023-06-03
  • mysql中integer类型赋值的方法是什么
    在MySQL中,可以使用以下语法为整数类型的列赋值: INSERT INTO table_name (column_name) VA...
    99+
    2024-04-09
    mysql
  • oracle中integer类型赋值的方法是什么
    在Oracle中,可以使用常规的赋值语法将整数值赋给INTEGER数据类型的变量。例如: DECLARE num INTEGER...
    99+
    2024-04-09
    oracle
  • PHP方法参数类型约束是什么
    这篇文章主要介绍了PHP方法参数类型约束是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。关于PHP的方法参数类型约束在之前的文章PHP方法参数的那点事儿中,我们讲过关于P...
    99+
    2023-06-15
  • java中integer的用法是什么
    在Java中,Integer是一个类,用来表示整数类型的数据。它提供了一些方法和功能来操作和处理整数数据。 以下是Integer类的...
    99+
    2023-10-24
    java
  • mybatis参数String与Integer类型的判断方式是什么
    这篇文章主要介绍“mybatis参数String与Integer类型的判断方式是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mybatis参数String与Integer类型的判断方式是什么”...
    99+
    2023-06-29
  • TypeScript中的递归类型是什么
    这篇文章主要讲解了“TypeScript中的递归类型是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“TypeScript中的递归类型是什么”吧!什么是递归类型?递归类型是指一个类型在定义...
    99+
    2023-07-05
  • Java中包装类Integer的使用方法
    这篇文章主要介绍Java中包装类Integer的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、Java中为什么引入包装类?在Java中,很多类的方法都需要接受引用类型的对象,此时就无法将一个基本数据类型的...
    99+
    2023-06-15
  • java判断文件类型的方法是什么
    Java可以通过以下方法来判断文件的类型:1. 使用java.nio.file.Files类的probeContentType()方...
    99+
    2023-10-09
    java
  • MySQL中常见的约束类型是什么
    这篇文章给大家分享的是有关MySQL中常见的约束类型是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 约束的字面意思就是规定或者限制某个事该如何去...
    99+
    2024-04-02
  • Java 如何判断Integer类型的值是否相等
    目录判断Integer类型的值是否相等Integer赋值比较赋值操作构造函数判断Integer类型的值是否相等 我们知道Integer是int的包装类,在jdk1.5以上,可以实现自...
    99+
    2024-04-02
  • java两个integer数据判断相等的方法是什么
    本篇内容介绍了“java两个integer数据判断相等的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!问题案例来个简单点的例子pu...
    99+
    2023-06-22
  • Java归一化处理的方法是什么
    在Java中,可以使用以下方法进行归一化处理:1. 最小-最大归一化(Min-Max Normalization):将数据缩放到指定...
    99+
    2023-10-20
    Java
  • java递归求阶乘的方法是什么
    Java中可以使用递归求阶乘的方法如下所示:```javapublic class Factorial {public static...
    99+
    2023-08-16
    java
  • python类型声明的方法是什么
    Python是一种动态类型语言,因此不需要显式声明变量的类型。变量的类型是根据其赋值来确定的。Python使用强大的类型推断来确定变...
    99+
    2023-10-20
    python
  • Java中Int、Integer、Integer.valueOf()、new Integer()之间的区别是什么
    本篇内容主要讲解“Java中Int、Integer、Integer.valueOf()、new Integer()之间的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中Int、...
    99+
    2023-06-25
  • Java二叉树的递归和非递归遍历方法是什么
    本篇内容主要讲解“Java二叉树的递归和非递归遍历方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java二叉树的递归和非递归遍历方法是什么”吧!前言二叉树的遍历方法分为前序遍历,中序遍...
    99+
    2023-06-30
  • Java异常类型分析及处理方法是什么
    今天就跟大家聊聊有关Java异常类型分析及处理方法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前言:Java异常,大家都很熟悉。但是对于具体怎么分类的,JVM对其怎么处理的,...
    99+
    2023-06-22
  • sql float类型赋值的方法是什么
    在SQL中,可以使用以下语法将一个值赋给一个float类型的变量: DECLARE @myFloat FLOAT SET @myFl...
    99+
    2024-03-12
    sql
  • sql bit类型使用的方法是什么
    在SQL中,可以使用BIT类型来表示存储值为0或1的数据。在使用BIT类型时,可以使用以下方法操作和处理这些数据: 用0或1来赋值...
    99+
    2024-03-13
    sql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作