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 parameters:
-
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:
// 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}