Java stream groupby_javadoop

Java stream groupby_javadoopgroupingBy()是StreamAPI中最强大的收集器Collector之一,提供与SQL的GROUPBY子句类似的功能。使用形式如下: .collect(groupingBy(…)); 需要指定一个属性才能使用,通过该属性执行分组。我们通过提供功能接口的实现来实现这一点-通常通过传递lambda表达式。例如,如果我…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

 

groupingBy()是Stream API中最强大的收集器Collector之一,提供与SQL的GROUP BY子句类似的功能。

 

使用形式如下:

 

.collect(groupingBy(...));

 

需要指定一个属性才能使用,通过该属性执行分组。我们通过提供功能接口的实现来实现这一点 – 通常通过传递lambda表达式。

 

例如,如果我们想按长度对字符串进行分组,我们可以通过将String :: length传递给groupingBy()来实现:

Java stream groupby_javadoop

分组到自定义Map实现

如果需要提供自定义Map实现,可以使用提供的groupingBy()重载来实现:

 

 

Java stream groupby_javadoop

 

提供自定义的下一个Collection

如果需要将分组元素存储在自定义集合中,可以使用toCollection()收集器来实现。

 

例如,如果要在TreeSet实例中对元素进行分组,然后输出到一个新的Collection,则可以这样简单:

 

Java stream groupby_javadoop

分组计数

如果您只想知道分组元素的数量,提供自定义counting()j就可以:

 

Java stream groupby_javadoop

将每个组转为字符串

如果需要对元素进行分组并为每个组创建单个String表示,可以使用join()来实现:

 

Java stream groupby_javadoop

分组和过滤条目

从分组结果中排除某些条目。这可以使用filtering()收集器来实现:

 

Java stream groupby_javadoop

分组和计算每组平均值

如果需要派生每组条目的平均属性,那么有一些方便的收集器:

 

averagingInt()

averagingLong()

averagingDouble()

 

Java stream groupby_javadoop

 

分组和计算每组的总和

如果要对分组条目进行累计总和:

 

summingInt()

summingLong()

summingDouble()

 

 

Java stream groupby_javadoop

reducing缩减操作

 

Java stream groupby_javadoop

计算最大最小值

 

Java stream groupby_javadoop

组合Collector

示例#1

假设我们有一个字符串列表,并希望获得与长度大于1的大写字符串相关联的字符串长度的映射,并将它们收集到TreeSet实例中。

 

Java stream groupby_javadoop

例#2

指定字符串列表,按匹配长度对它们进行分组,转换为字符列表,展平获取的列表,仅保留具有非零长度的不同元素,并最终通过应用字符串连接来减少它们。

 

Java stream groupby_javadoop

 

 

转自:https://www.jdon.com/50132

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171376.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea常用快捷键大全_idea的快捷键设置

    idea常用快捷键大全_idea的快捷键设置文章目录一.快速生成main二.快速生成System.out.print三.文件保存四.删除一行五.新添,新建,添加的快捷键六.切换java程序七.目录显示与关闭八.运行九.提示方法的参数十.切换窗口一.快速生成main输入psvm二.快速生成System.out.print使用sout三.文件保存IDEA是自动保存的,不需要我们去Ctrl+S保存。四.删除一行Ctrl+Y五.新添,新建,添加的快捷键Alt+lnsert六.切换java程序

    2025年9月23日
    9
  • php每秒执行一次_crontab每分钟执行shell脚本

    php每秒执行一次_crontab每分钟执行shell脚本作为php-slimWeb应用程序的一部分,在我的init.php文件中,我需要一个Crontab.php,其中包含以下代码://clearsanyexistingcrontabjobsfirstexec(“crontab-r”);$ctCommand='”*/1****php./ProcessCycleTimeData.php”‘;exec(“(crontab-…

    2022年8月30日
    4
  • 计算机网络曼彻斯特编码与差分曼彻斯特编码

    计算机网络曼彻斯特编码与差分曼彻斯特编码曼彻斯特编码与差分曼彻斯特编码 1 两种编码在中间均需要进行一次跳变 2 曼彻斯特编码 吉大原则为负到正为 1 正到负为 0 3 差分曼彻斯特编码 为 0 时发生跳变 为 1 时不发生跳变 在此处跳变的含义为中间虚线位置 若当前为 1 则与前一个编码的后半部分电平相同 若为 0 则与前一个编码的后半部分电平相反 4 对于差分曼彻斯特编码 第一个位置需自己决定 一般选择不同 从边界直着下来

    2025年10月14日
    6
  • pytest-allure_allure的用法

    pytest-allure_allure的用法前言allure是一个report框架,支持java的Junit/testng等框架,当然也可以支持python的pytest框架,也可以集成到Jenkins上展示高大上的报告界面。mac环境:

    2022年7月28日
    9
  • 微信小程序–电池容量、电池剩余电量样式

    微信小程序–电池容量、电池剩余电量样式效果如图所示:竖列的我用的旋转横列90度实现的wxml:<viewclass=”complex”><viewdata-charge=’0’class=”battery”></view><viewdata-charge=’1’class=”battery”></view><viewdata-charge=’2’class=”battery”></view&gt…

    2022年8月18日
    7
  • JVM调优常用命令及工具

    JVM调优常用命令及工具目录1、jstat命令1.1、查看class加载统计1.2、查看编译统计1.3、垃圾回收统计2、jmap命令2.1、查看内存使用情况jmap-heap2629682.2、查看内存中对象数量及大小2.3、将内存使用情况dump到文件中2.4、通过jhat对dump文件进行分析2.5、通过MAT工具对dump文件进行分析3、jstack命令4、jdk自带jvisualvm工具1、jstat命令jstat命令可以查看堆内存各部分的使用量,以及加载类的数

    2022年5月15日
    60

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号