Skip to main content

groupingBy classifier collector

Data​

    List<Employee> employees = List.of(
new Employee(1, "Alex", 30, new Department(1, "HR")),
new Employee(2, "Alex", 36, new Department(1, "HR")),
new Employee(3, "David", 30, new Department(1, "HR")),
new Employee(4, "Andrew", 30, new Department(2, "Finance")),
new Employee(5, "Edward", 31, new Department(2, "Finance")),
new Employee(6, "Nathan",42, new Department(3, "ADMIN")),
new Employee(7, "Frank",23 , new Department(3, "ADMIN")),
new Employee(8, "David", 30, new Department(1, "HR")));

Syntax:


groupingBy(Function<? super T,? extends K> classifier, Collector<? super T,A,D> downstream)

Examples​

groupingByCounting()​

    // counting
public void groupingByCounting() {
Map<Employee, Long> nameCount = employees.stream().collect(Collectors
.groupingBy(string -> string, Collectors.counting()));

nameCount.forEach((name, count) -> { System.out.println(name + ":" + count); });
}