Maison >Java >javaDidacticiel >Comment puis-je compter efficacement la fréquence des mots dans une liste à l'aide de Java 8 ?
Dans le développement Web et l'analyse de données, comprendre la fréquence des mots est crucial. Pour y parvenir, nous verrons comment compter la fréquence des mots dans une liste à l'aide de Java 8.
L'API Stream dans Java 8 fournit une solution élégante pour les mots comptage de fréquence. Pour commencer, créez une liste de mots :
List<String> wordsList = Lists.newArrayList("hello", "bye", "ciao", "bye", "ciao");
La logique de base consiste à regrouper les mots selon leur identité et à compter les occurrences :
Map<String, Long> collect = wordsList.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
Cela produit une carte où chaque clé est un mot unique, et la valeur correspondante est sa fréquence. Le résultat doit ressembler à :
{ciao=2, hello=1, bye=2}
Comptage des valeurs entières
Si vous avez besoin de valeurs entières au lieu de valeurs longues, utilisez :
Map<String, Integer> collect = wordsList.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.summingInt(e -> 1)));
Pour trier la carte en fonction des valeurs par ordre décroissant, utilisez :
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 ));
Cette étape renvoie un LinkedHashMap trié où les clés représentent les mots et les valeurs représentent leurs fréquences triées.
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!