返回顶部
首页 > 资讯 > 后端开发 > JAVA >stream流——分组
  • 792
分享到

stream流——分组

java 2023-08-20 16:08:23 792人浏览 泡泡鱼
摘要

stream流——续 Stream流引入 Lambda表达式,基于Lambda所带来的函数式编程,又引入了一个全新的Stream概念,用于解决集合类库。 测试的实体实例 List listUser = new ArrayList();

stream流——续

Stream流引入

Lambda表达式,基于Lambda所带来的函数式编程,又引入了一个全新的Stream概念,用于解决集合类库。

测试的实体实例

List<User> listUser = new ArrayList<>();        listUser.add(new User().setId(1).setName("张三").setAge(18));        listUser.add(new User().setId(2).setName("李四").setAge(25));        listUser.add(new User().setId(3).setName("王五").setAge(25));        listUser.add(new User().setId(3).setName("马六").setAge(31));

1. 这种是将List集合根据某个类型进行分组:

 list.collect(Collectors.groupingBy(User::getAge));

2.stream流也可以实现在分组之后进行每组数据的统计:

list.collect(Collectors.groupingBy(User::getAge,Collectors.counting())));

3.stream流也可以实现在分组之后进行每组数据的求和:

list.collect(Collectors.groupingBy(User::getAge,Collectors.summarizingInt(User::getAge))));

4. stream流也可以实现在分组之后的数据进行二次处理操作只获取需要的数据:

list.collect(Collectors.groupingBy(User::getAge,Collectors.mapping(User::getName, Collectors.toSet())));

总结

上述问题中,还可以延伸到在分组之前对数据进行filter过滤进处理无用数据,也可以在分组之后进行其他求值操作并不限于求和,以及统计。上述的方法能极大的提升代码的运行速度,例如:当你需要对一个list集合进行其他数据库查询处理的时候,可以一次性查询到list需要的所有数据,然后通过分组进行数据处理,就能极大的减少项目数据库之间的通讯从而提高运行速度

来源地址:https://blog.csdn.net/weixin_48293596/article/details/128541003

--结束END--

本文标题: stream流——分组

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

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

猜你喜欢
  • stream流——分组
    stream流——续 Stream流引入 Lambda表达式,基于Lambda所带来的函数式编程,又引入了一个全新的Stream概念,用于解决集合类库。 测试的实体实例 List listUser = new ArrayList(); ...
    99+
    2023-08-20
    java
  • Stream流中的groupingBy分组操作
     code: //根据医院编号,查询医院所有科室信息 Department departmentQuery = new Department(); departmentQuery.setHoscode(hoscode); Example ...
    99+
    2023-09-01
    java mysql sql
  • Java Stream流 Map 分组方式汇总
    java老式的分组方式(对list for循环然后 if判断 放入map) 代码复杂,易读性差,维护性差,故本文汇总了Stream流中的分组方法供大家参考,如对您有帮助,请抬抬高贵的小手点个赞吧,欢迎大佬留下高见 (以下方法默认都是java...
    99+
    2023-09-27
    java
  • Java Stream流实现多字段分组groupingBy操作
    近期的项目里,遇到一个需求:对于含有多个元素的List,按照其中的某几个属性进行分组,比如Report::getPersonID、Report::getSchoolYear、Report::getDa...
    99+
    2023-10-28
    java
  • Java stream 分组操作
    根据单/多字段分组 单字段分组可以直接使用指定字段,多字段分组则采用拼接Key的形式 单字段: //单字段分组Map singleAttr = list.stream().collect( Collectors...
    99+
    2023-08-31
    java stream
  • Java Stream 处理分组后取每组最大&Stream流之list转map、分组取每组第一条&Java 8 Collectors:reducing 示例(List分组取最值)
    Java Stream 处理分组后取每组最大 有一个需求功能:先按照某一字段分组,再按照另外字段获取最大的那个 Map configMap = configList.parallelStream()....
    99+
    2023-08-31
    Java Stream Collectors reducing 新特性
  • Java的Stream流实例分析
    本篇内容主要讲解“Java的Stream流实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java的Stream流实例分析”吧!Stream流上篇文章讲了Java 8 的一个新特性:Lam...
    99+
    2023-06-29
  • Node.js Stream(流)
    Node.js Stream(流)Stream 是 Node.js 中非常重要的一个模块,应用广泛。Stream 是一个抽象接口,Node 中有很多对象实现了这个接口。例如,对http 服务器发起请求的request 对象就是一个 Stre...
    99+
    2023-06-03
  • Stream流排序数组和List 详解
    目录一、对象单字段排序二、多字段排序三、数组排序以及List<Integer>排序一、对象单字段排序 List<People> peopleL...
    99+
    2024-04-02
  • Java8使用stream流给List<Map<String,Object>>分组(多字段key)
    Java8使用stream流给List根据字段key分组 一、项目场景: 从已得到的List集合中,根据某一元素(这里指map的key)进行分组,筛选出需要的数据。 如果是SQL的话则使用group ...
    99+
    2023-09-07
    list java spring boot 后端
  • Java stream多字段分组(groupingBy)
    近期的项目里,遇到一个需求:对于含有多个元素的List,按照其中的某几个属性进行分组,比如Persion::getAge、Persion::getType、Persion::getGender等字段。下面就让我们讨论一下如何比较优雅的按...
    99+
    2023-08-21
    java 后端 stream
  • 【Stream流】java中Stream流详细使用方法
    在Java中,Stream是一种用于处理集合数据的流式操作API。它提供了一种简洁、灵活、高效的方式来对集合进行各种操作,如过滤、映射、排序等。下面是一些Stream的常用功能和详细的代码示例: 创...
    99+
    2023-09-29
    java spring boot 后端 开发语言
  • Java分析Lambda表达式Stream流合并分组内对象数据合并
    目录前言需求代码实现依赖引入设计实体类测试代码前言 之前写过《Lambda使用——JDK8新特性》,现在有一个分组合并的需求正好拿来小试牛刀。 需求 数据出自...
    99+
    2022-12-08
    Lambda Stream流合并 Lambda分组内对象数据合并
  • Java中用Stream分组并求各组数量
    比如给了我一个班级的所有人的姓氏和姓名对象集合,根据这个集合求出各姓氏有多少人。直接上代码。 User的实体类对象为 @Data@NoArgsConstructor@AllArgsConstructorpublic class User {...
    99+
    2023-08-31
    java intellij-idea idea
  • Java8新特性Stream流的示例分析
    这篇文章主要介绍Java8新特性Stream流的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是Stream流?Stream流是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。Stream的优点...
    99+
    2023-05-30
    java8 stream流
  • Java--Stream流详解
    Stream是Java 8 API添加的一个新的抽象,称为流Stream,以一种声明性方式处理数据集合(侧重对于源数据计算能力的封装,并且支持序列与并行两种操作方式) Stream流是从支持数据处理操作的源生成的元素序列,源可以是数组、...
    99+
    2023-08-31
    stream
  • Java Stream流详解
    本文目录 学习目标中间操作Filter(过滤)Map(转换)Sorted(排序)Distinct(去重)Limit(限制)Skip(跳过)Peek(展示) 终止操作forEach(循环)Collect(收集)Count(计数)R...
    99+
    2023-08-16
    java 开发语言 stream流
  • Java8 Stream之groupingBy分组使用解读
    目录Java8 Stream之groupingBy分组Collectors.groupingBy()分组之常见用法Collectors.groupingBy() 分组之统计每个分组的...
    99+
    2023-05-17
    Java8 Stream groupingBy分组 Java8 groupingBy分组
  • java stream实现分组BigDecimal求和,自定义分组求和
    前言 随着微服务的发展,越来越多的sql处理被放到java来处理,数据库经常会使用到对集合中的数据进行分组求和,分组运算等等。 那怎么样使用java的stream优雅的进行分组求和或运算呢? 一、准备测试数据 这里测试数据学生,年龄类型...
    99+
    2023-08-16
    java jvm 开发语言
  • Java中Stream流详解
    今天在Java学习中,遇到了starm这个操作方式,了解后发现很多操作都很实用并且在项目开发中经常用到,特写下此篇博客用来记录。 目录 一、Stream基础概念Stream操作中的惰性计算创建Stream 二、常用的Strea...
    99+
    2023-08-25
    java 开发语言 jvm
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作