首页 > 编程知识 正文

stream java,grouping by

时间:2023-05-03 07:05:35 阅读:126479 作者:3761

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

使用形式如下。

. collect(groupingby )…);

要执行分组,必须指定属性。 这是通过提供功能接口实现来实现的。 通常通过传递lambda表达式来实现。

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

分组到自定义Map实现

如果需要提供自定义映射实现,可以使用提供的groupingBy ) )重载来实现。

提供自定义的下一个Collection

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

例如,如果要在TreeSet实例中对元素进行分组,并将其输出到新的Collection,则可以轻松地执行以下操作:

分组计数

如果只想知道组合元素的数量,请提供自定义counting () j。

将每个组转为字符串

如果需要对元素进行分组并为每个组创建一个字符串表示形式,请使用join ()。

分组和过滤条目

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

分组和计算每组平均值

如果需要派生每个条目组的平均属性,则有几个有用的收集器。

averagingInt ()

averagingLong ()

平均双精度()

分组和计算每组的总和

如果要累计分组条目的总数:

summingInt ()

summingLong ()

summingDouble ()

reducing缩减操作

计算最大最小值

组合Collector

示例#1

假设您想要检索与具有字符串列表且长度大于1的大写字符串相关联的字符串长度的映射,并将其收集到TreeSet实例中。

示例#2

指定字符串列表,按匹配长度分组,将其转换为字符列表,展开检索到的列表,只保留不同长度的非零元素,最终通过应用字符串连接来减少它们。

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。