Maison > Java > javaDidacticiel > Comment calculer les fréquences de mots dans une liste à l'aide de Java 8 ?

Comment calculer les fréquences de mots dans une liste à l'aide de Java 8 ?

DDD
Libérer: 2024-10-30 02:11:29
original
719 Les gens l'ont consulté

How to Calculate Word Frequencies in a List Using Java 8?

Comptage de la fréquence des mots en Java 8

Comment compter la fréquence d'un mot dans une liste en utilisant Java 8 ?

<code class="java">List<String> wordsList = Lists.newArrayList("hello", "bye", "ciao", "bye", "ciao");</code>
Copier après la connexion

Le résultat devrait être :

<code class="java">{ciao=2, hello=1, bye=2}</code>
Copier après la connexion

Au début, je m'attendais à utiliser la méthode map et réduire, mais la méthode réelle est légèrement différente.

<code class="java">Map<String, Long> collect = wordsList.stream()
    .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));</code>
Copier après la connexion

Ou pour les valeurs entières :

<code class="java">Map<String, Integer> collect = wordsList.stream()
     .collect(Collectors.groupingBy(Function.identity(), Collectors.summingInt(e -> 1)));</code>
Copier après la connexion

EDIT

J'ai également ajouté comment trier la carte par valeur :

<code class="java">LinkedHashMap<String, Long> countByWordSorted = 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
            ));</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal