Collectors groupingBy() method in Java with Examples

The groupingBy() method of Collectors class in Java are used for grouping objects by some property and storing results in a Map instance. In order to use it, we always need to specify a property by which the grouping would be performed. This method provides similar functionality to SQL’s GROUP BY clause.

Syntax:

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



Type Parameter: This method takes two type paramters:

  • T- It is the type of the input elements.
  • K- It is the type the input elements to be converted.
  • Parameters: This method accepts two mandatory parameters:

  • Function- It is the property which is to be applied to the input elements.
  • Classifier- It is used to map input elements into the destination map.
  • Return value: It returns a collector as a map.

    Below is the program implementation of groupingBy() method:

    Program 1:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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);
        }
    }

    chevron_right

    
    

    Output:

    {geeks=2, for=1}
    

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



    My Personal Notes arrow_drop_up

    Check out this Author's contributed articles.

    If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

    Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.