Maison > Java > javaDidacticiel > le corps du texte

API Stream en Java 8 : Comment utiliser la classe Collectors pour le regroupement et les statistiques des collections

王林
Libérer: 2023-07-31 18:21:15
original
1138 Les gens l'ont consulté

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é.

  1. Groupe de collections
    Dans le développement réel, nous avons souvent besoin de regrouper les collections selon un certain attribut pour faciliter le traitement ultérieur. Dans Java 8, vous pouvez utiliser la méthode groupBy() de la classe Collectors pour implémenter le regroupement de collections.

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);
Copier après la connexion

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}]}
Copier après la connexion

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.

  1. Statistiques des ensembles
    En pratique, nous pouvons avoir besoin de compter les éléments de l'ensemble, comme calculer le nombre d'éléments, faire la somme, faire la moyenne, etc. L'API Stream de Java 8 fournit une série de méthodes statistiques, que nous pouvons utiliser summingInt(), averagingInt(), counting() et d'autres méthodes de la classe Collectors pour implémenter.

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);
Copier après la connexion

Le résultat de sortie est :

Sum: 15
Average: 3.0
Count: 5
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal