No desenvolvimento web e análise de dados, compreender a frequência das palavras é crucial. Para conseguir isso, nos aprofundaremos em como contar a frequência de palavras em uma lista usando Java 8.
A API Stream em Java 8 fornece uma solução elegante para palavras contagem de frequência. Para começar, crie uma lista de palavras:
ListwordsList = Lists.newArrayList("hello", "bye", "ciao", "bye", "ciao");
A lógica central envolve agrupar as palavras por sua identidade e contar as ocorrências:
Mapcollect = wordsList.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
Isso produz um mapa onde cada chave é uma palavra única e o valor correspondente é sua frequência. A saída deve ser semelhante a:
{ciao=2, hello=1, bye=2}
Contando valores inteiros
Se você precisar de valores inteiros em vez de valores longos, use:
Mapcollect = wordsList.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.summingInt(e -> 1)));
Para classificar o mapa com base nos valores em ordem decrescente, 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 ));
Esta etapa retorna um LinkedHashMap classificado onde as chaves representam as palavras e os valores representam suas frequências classificadas.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3