Maison > Java > javaDidacticiel > Comment puis-je compter les occurrences de chaînes dans une liste à l'aide de flux Java ?

Comment puis-je compter les occurrences de chaînes dans une liste à l'aide de flux Java ?

Mary-Kate Olsen
Libérer: 2024-11-11 06:39:02
original
726 Les gens l'ont consulté

How Can I Count String Occurrences in a List Using Java Streams?

Comptage des occurrences avec groupBy

La méthode groupBy dans les flux Java nous permet de collecter des éléments en groupes en fonction d'une clé spécifiée. Dans ce cas, nous souhaitons regrouper les chaînes par leur valeur et compter les occurrences au sein de chaque groupe.

Pour y parvenir, nous pouvons utiliser la surcharge de groupBy qui prend un deuxième Collector. Nous fournirons Collectors.counting() comme collecteur, qui comptera les éléments au sein de chaque groupe.

Voici comment implémenter cela à l'aide d'un flux :

import java.util.*;
import java.util.stream.*;

class Test {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();

        list.add("Hello");
        list.add("Hello");
        list.add("World");

        Map<String, Long> counted = list.stream()
            .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

        System.out.println(counted);
    }
}
Copier après la connexion

Cela produira ce qui suit sortie :

{Hello=2, World=1}
Copier après la connexion

La carte contient deux entrées, avec "Bonjour" mappé sur 2 et "Monde" mappé sur 1. Cela représente le nombre de occurrences pour chaque mot dans la liste d'entrée.

Notez que nous pouvons également utiliser groupingByConcurrent pour une efficacité améliorée, en particulier dans les scénarios où l'exécution simultanée est sûre.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal