Maison >Java >javaDidacticiel >Comment puis-je compter les occurrences de chaînes dans une liste à l'aide de flux Java ?
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!