Maison > Java > javaDidacticiel > API Stream en Java 8 : Comment utiliser la méthode réduire() pour effectuer des opérations d'agrégation sur les collections

API Stream en Java 8 : Comment utiliser la méthode réduire() pour effectuer des opérations d'agrégation sur les collections

王林
Libérer: 2023-07-30 22:07:58
original
1258 Les gens l'ont consulté

API Stream en Java 8 : Comment utiliser la méthode réduire() pour effectuer des opérations d'agrégation sur les collections

Introduction :
Dans Java 8, l'API Stream a été introduite, qui fournit un moyen plus puissant et plus pratique de traiter les données de collection. La méthode réduire() de l'API Stream joue un rôle important dans l'opération d'agrégation de la collection. Cet article présentera l'utilisation de la méthode réduire() et fournira quelques exemples de code.

1. Présentation de la méthode réduire()
La méthode réduire() est l'une des méthodes principales de l'API Stream pour les opérations d'agrégation sur les collections. Il accepte un paramètre de type BinaryOperator, qui définit la manière dont les éléments de la collection sont agrégés. La méthode réduire() applique l'opération d'agrégation aux éléments de la collection un par un et renvoie un résultat facultatif. La méthode

reduce() a deux versions surchargées :

  1. T réduire(T identité, BinaryOperator accumulateur)
  2. Facultatif réduire(BinaryOperator accumulateur)

La première version La réduction( ) accepte une identité de valeur initiale et un accumulateur d'opérateur binaire. Il prend la valeur initiale comme point de départ du calcul et applique chaque élément à l'accumulateur, renvoyant finalement le résultat agrégé.

La deuxième version de la méthode réduire() n'accepte qu'un accumulateur d'opérateur binaire. Il ne fournit pas de valeur initiale, il renvoie donc un objet facultatif représentant les résultats possibles.

2. Exemples d'utilisation de la méthode réduire()

Voici quelques exemples de code montrant différentes utilisations de la méthode réduire() :

  1. Sommez les éléments de l'ensemble :
    Liste asList( 1, 2, 3, 4, 5);
    int sum = number.stream()

             .reduce(0, (a, b) -> a + b);
    Copier après la connexion

    System.out.println(sum); // Sortie : 15

  2. Trouver la valeur maximale de l'ensemble éléments :
    Liste nombres = Arrays.asList(1, 2, 3, 4, 5);
    Facultatif max = nombres.stream()

                            .reduce(Integer::max);
    Copier après la connexion

    System.out.println(max.orElse(0 )); / / Sortie : 5

  3. Concaténer des chaînes :
    List strings = Arrays.asList("Java", "Stream", "API");
    String result = strings.stream()

                    .reduce("", (a, b) -> a + " " + b);
    Copier après la connexion

    System.out.println(result); // Sortie : API Java Stream

  4. Opération d'agrégation personnalisée :
    List ("Bob", 30),
    new Person("Charlie", 25)
    );
    int totalAge = people.stream()

                  .reduce(0, (sum, p) -> sum + p.getAge(), (a, b) -> a + b);
    Copier après la connexion

    System.out.println(totalAge); Dans cet exemple, nous utilisons un opérateur binaire personnalisé pour additionner les âges des objets Person.

    Conclusion : La méthode
  5. reduce() est l'une des méthodes importantes de l'API Stream pour les opérations d'agrégation de collections. Grâce à la méthode réduire(), nous pouvons effectuer des opérations telles que la somme des éléments de l'ensemble, la prise de la valeur maximale et la concaténation de chaînes. Dans le développement réel, nous pouvons personnaliser les opérateurs binaires selon les besoins pour implémenter des opérations d'agrégation plus complexes. Maîtriser l'utilisation de la méthode réduire() peut rendre notre code plus concis et efficace.

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