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
Mary-Kate Olsenoriginal
2024-11-11 06:39:02718parcourir

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);
    }
}

Cela produira ce qui suit sortie :

{Hello=2, World=1}

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:
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