Java中的Collectors类的groupingBy()方法用于按某些属性对对象进行分组并将结果存储在Map实例中。为了使用它,我们总是需要指定一个属性来执行分组。此方法提供的函数类似于SQL的GROUP BY子句。
用法:
public static Collector<T, ?, Map<K, List>> groupingBy(Function classifier)
类型参数:此方法采用两个类型参数:
- T-这是输入元素的类型。
- K-这是要转换的输入元素的类型。
参数:此方法接受两个强制性参数:
- Function-这是要应用于输入元素的属性。
- Classifier-它用于将输入元素映射到目标映射中。
返回值:它返回一个Collector作为Map。
下面是groupingBy()方法的程序实现:
程序1:
// Java program to demonstrate
// Collectors groupingBy() method
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
public class GFG {
public static void main(String[] args)
{
// Get the List
List<String> g
= Arrays.asList("geeks", "for", "geeks");
// Collect the list as map
// by groupingBy() method
Map<String, Long> result
= g.stream().collect(
Collectors.groupingBy(
Function.identity(),
Collectors.counting()));
// Print the result
System.out.println(result);
}
}
输出:
{geeks=2, for=1}
相关用法
- Java Collectors toList()用法及代码示例
- Java Collectors collectingAndThen()用法及代码示例
- Java Collectors toMap()用法及代码示例
- Java Collectors averagingDouble()用法及代码示例
- Java 8 Collectors averagingInt()用法及代码示例
- Java 8 Collectors counting()用法及代码示例
- Java Collectors toSet()用法及代码示例
- Java Collectors averagingLong(ToLongFunction mapper)用法及代码示例
- Java Collectors partitioningBy()用法及代码示例
- Java Collectors minBy(Comparator comparator)用法及代码示例
- Java Collectors maxBy(Comparator comparator)用法及代码示例
- Java Java.util.Collections.rotate()用法及代码示例
注:本文由纯净天空筛选整理自suman_ptnl大神的英文原创作品 Collectors groupingBy() method in Java with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。