API Stream en Java 8 : Comment utiliser la classe Collectors pour le regroupement et les statistiques des collections
Introduction :
Dans Java 8, l'API Stream est introduite, qui est un concept de programmation fonctionnelle qui nous permet de l'utiliser de manière plus efficace manière. Gérez les données de collecte de manière concise et élégante. L'API Stream fournit des fonctionnalités riches, dont l'une consiste à regrouper et à compter les collections. Cet article explique comment utiliser la classe Collectors pour obtenir cette fonctionnalité.
L'exemple de code est le suivant :
class Person { private String name; private String gender; private int age; public Person(String name, String gender, int age) { this.name = name; this.gender = gender; this.age = age; } public String getName() { return name; } public String getGender() { return gender; } public int getAge() { return age; } } List<Person> persons = Arrays.asList( new Person("John", "male", 20), new Person("Jane", "female", 25), new Person("Tom", "male", 30), new Person("Emily", "female", 35) ); Map<String, List<Person>> groupedByGender = persons.stream() .collect(Collectors.groupingBy(Person::getGender)); System.out.println(groupedByGender);
Le résultat de sortie est :
{female=[Person{name='Jane', gender='female', age=25}, Person{name='Emily', gender='female', age=35}], male=[Person{name='John', gender='male', age=20}, Person{name='Tom', gender='male', age=30}]}
Dans le code ci-dessus, nous avons d'abord créé une classe Person à titre d'exemple, qui contient les attributs de nom, de sexe et d'âge. Ensuite, une collection List d’objets Person est créée. Ensuite, convertissez la collection en flux via la méthode stream(). Enfin, utilisez la méthode groupBy() de la classe Collectors pour regrouper en fonction de l'attribut de genre de l'objet Person, et les résultats sont enregistrés dans une collection Map.
L'exemple de code est le suivant :
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); int sum = numbers.stream().collect(Collectors.summingInt(Integer::intValue)); double average = numbers.stream().collect(Collectors.averagingInt(Integer::intValue)); long count = numbers.stream().collect(Collectors.counting()); System.out.println("Sum: " + sum); System.out.println("Average: " + average); System.out.println("Count: " + count);
Le résultat de sortie est :
Sum: 15 Average: 3.0 Count: 5
Dans le code ci-dessus, nous créons d'abord une liste de type entier, qui contient une série de nombres. Ensuite, la méthode summingInt() est utilisée pour calculer la somme, la méthode averagingInt() est utilisée pour calculer la moyenne et la méthode counting() est utilisée pour calculer le nombre. Enfin, les résultats sont obtenus grâce à la méthode collect() de la classe Collectors.
Résumé :
Avec l'API Stream et la classe Collectors dans Java 8, nous pouvons effectuer des opérations de regroupement et des statistiques sur les collections de manière plus concise et élégante. Cette fonctionnalité améliore non seulement la lisibilité du code, mais améliore également considérablement la flexibilité du programme.
Ce qui précède est l'introduction de cet article au regroupement de collections et aux statistiques de l'API Stream et de la classe Collectors dans Java 8. J'espère que cela vous sera utile. Merci!
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!