Java Collectors groupingBy()方法及示例

Java Collectors groupingBy()方法及示例

Java中Collectors类的 groupingBy() 方法用于按某些属性对对象进行分组,并将结果存储在Map实例中。为了使用它,我们总是需要指定一个属性来进行分组。该方法提供了与SQL的GROUP BY子句类似的功能。

语法

public static Collector<T, ?, Map<K, List>> groupingBy(Function classifier)

类型参数: 该方法需要两个类型参数。

  • T- 它是输入元素的类型。

  • K- 它是要转换的输入元素的类型。

参数: 该方法接受两个强制性参数。

  • Function- 它是要应用于输入元素的属性。

  • Classifier- 它用于将输入元素映射到目标映射中。

返回值: 它返回一个作为地图的收集器。

下面是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-

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程