当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Collectors groupingBy()用法及代码示例


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}

参考: https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html#groupingBy-java.util.function.Function-



相关用法


注:本文由纯净天空筛选整理自suman_ptnl大神的英文原创作品 Collectors groupingBy() method in Java with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。