Java Language Creando un Mapa de Frecuencia


Ejemplo

El recopilador groupingBy(classifier, downstream) permite la recopilación de elementos Stream en un Map al clasificar cada elemento en un grupo y realizar una operación descendente en los elementos clasificados en el mismo grupo.

Un ejemplo clásico de este principio es usar un Map para contar las ocurrencias de elementos en una Stream . En este ejemplo, el clasificador es simplemente la función de identidad, que devuelve el elemento como está. La operación descendente cuenta el número de elementos iguales, utilizando counting() .

Stream.of("apple", "orange", "banana", "apple")
      .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
      .entrySet()
      .forEach(System.out::println);

La operación descendente es en sí misma un colector ( Collectors.counting() ) que opera en elementos de tipo String y produce un resultado de tipo Long . El resultado de la llamada al método de collect es un Map<String, Long> .

Esto produciría el siguiente resultado:

plátano = 1
naranja = 1
manzana = 2