Colectores método groupingBy() en Java con ejemplos

El método groupingBy() de la clase Collectors en Java se usa para agrupar objetos por alguna propiedad y almacenar resultados en una instancia de Map. Para usarlo, siempre necesitamos especificar una propiedad por la cual se realizaría la agrupación. Este método proporciona una funcionalidad similar a la cláusula GROUP BY de SQL.
 

Sintaxis:  

public static Collector<T, ?, Map<K, List>> groupingBy (clasificador de función) 
 

Parámetro de tipo: este método toma dos parámetros de tipo: 

  • T- Es el tipo de los elementos de entrada.
     
  • K- Es el tipo de elementos de entrada a convertir.

Parámetros: Este método acepta dos parámetros obligatorios:  

  • Función : es la propiedad que se aplicará a los elementos de entrada.
     
  • Clasificador : se utiliza para asignar elementos de entrada al mapa de destino.

Valor de retorno: Devuelve un colector como un mapa.
 

A continuación se muestra la implementación del programa del método groupingBy():
Programa 1: 

Java

// 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);
    }
}
Producción: 

{geeks=2, for=1}

 

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

Publicación traducida automáticamente

Artículo escrito por suman_ptnl y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *