En el desarrollo web y el análisis de datos, comprender la frecuencia de las palabras es crucial. Para lograr esto, profundizaremos en cómo contar la frecuencia de las palabras en una lista usando Java 8.
La API Stream en Java 8 proporciona una solución elegante para Word conteo de frecuencia. Para comenzar, cree una lista de palabras:
ListwordsList = Lists.newArrayList("hello", "bye", "ciao", "bye", "ciao");
La lógica central implica agrupar las palabras por su identidad y contar las apariciones:
Mapcollect = wordsList.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
Esto produce un mapa donde cada clave es una palabra única y el valor correspondiente es su frecuencia. La salida debería ser similar a:
{ciao=2, hello=1, bye=2}
Contando valores enteros
Si necesita valores enteros en lugar de valores largos, utilice:
Mapcollect = wordsList.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.summingInt(e -> 1)));
Para ordenar el mapa según los valores en orden descendente, use:
LinkedHashMapcountByWordSorted = collect.entrySet() .stream() .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) .collect(Collectors.toMap( Map.Entry::getKey, Map.Entry::getValue, (v1, v2) -> { throw new IllegalStateException(); }, LinkedHashMap::new ));
Este paso devuelve un LinkedHashMap ordenado donde las claves representan las palabras y los valores representan sus frecuencias ordenadas.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3