Accueil Finances personnelles En utilisant Streams et Lambda Expressions en Java - dummies

En utilisant Streams et Lambda Expressions en Java - dummies

Vidéo: Java 8 Streams Tutorial 2024

Vidéo: Java 8 Streams Tutorial 2024
Anonim

Java a des méthodes sophistiquées qui optimisent l'utilisation des flux et des expressions lambda. Avec les flux et les expressions lambda, vous pouvez créer une ligne d'assemblage. La solution de ligne d'assemblage utilise des concepts issus de la programmation fonctionnelle.

La chaîne de montage est composée de plusieurs méthodes. Chaque méthode prend les données, transforme les données d'une manière ou d'une autre et remet ses résultats à la méthode suivante en ligne. Voici une chaîne de montage.

Une ligne d'assemblage de programmation fonctionnelle.

Chaque boîte représente un tas de matières premières transformées le long d'une ligne d'assemblage. Chaque flèche représente une méthode (ou, métaphoriquement, un travailleur sur la chaîne de montage).

Par exemple, lors du passage de la deuxième case à la troisième, une méthode worker (la méthode filter ) filtre les ventes d'éléments qui ne sont pas des DVD. Imaginez Lucy Ricardo debout entre les deuxième et troisième boîtes, retirant chaque livre ou CD de la chaîne de montage et le jetant négligemment sur le sol.

Le paramètre de la méthode filter de Java est Predicate - une expression lambda dont le résultat est boolean . La méthode filter filtre les éléments qui ne réussissent pas le test true / false de l'expression lambda.

Méthodes de programmation fonctionnelle
Nom de la méthode Membre de Paramètre (s) Type de résultat Valeur de résultat
flux Collection (par exemple, ArrayList , objet) (aucun) Flux Un flux qui recrache des éléments de la collection
filtre Flux Prédicat Flux > Un nouveau flux contenant des valeurs pour lesquelles l'expression lambda renvoie true map
Stream Function Stream Un nouveau flux contenant les résultats de l'application de l'expression lambda au flux entrant réduire
Flux BinaryOperator Le type utilisé par le BinaryOperator Le résultat de la combinaison de toutes les valeurs dans le flux entrant
Lors du passage de la troisième boîte à la quatrième, une méthode de travail (méthode

map ) extrait le prix de chaque vente . À partir de cet endroit, la ligne d'assemblage ne contient que prix . Pour être plus précis, la méthode Java

map prend une Fonction telle que (sale) -> sale. getPrice ()

et applique la

Function à chaque valeur d'un flux. Ainsi, la méthode map prend un flux entrant d'objets sale et crée un flux sortant de valeurs price . Lors du passage de la quatrième case à la cinquième case, une méthode de travail (méthode

réduire ) ajoute le prix des ventes de DVD.La méthode Java reduce prend deux paramètres: Le premier paramètre est une valeur initiale.

Dans l'image ci-dessus, la valeur initiale est

0. 0 . Le second paramètre est un

. Dans l'image ci-dessus, réduire la méthode BinaryOperator est (prix1, prix2) -> prix1 + prix2

La méthode

réduire utilise son BinaryOperator pour combiner les valeurs du flux entrant. La valeur initiale sert de point de départ pour toute la combinaison. Donc, la méthode réduire fait deux ajouts. La méthode reduce ajoute deux valeurs à un flux entrant.

Pour comparer, imaginez que l'appel de la méthode

réduise (10.0, (value1, value2) -> value1 * value2)

avec le flux dont les valeurs incluent

3. 0 , 2. 0 et 5. 0 . L'action résultante est indiquée ci-dessous La méthode réduire multiplie les valeurs d'un flux entrant.

Vous avez peut-être entendu parler du modèle de programmation MapReduce de Google. La similarité entre le nom du modèle de programmation et les noms de méthodes Java map et reduce n'est pas une coïncidence. Pris dans leur ensemble, l'ensemble de l'assemblage augmente les prix des DVD vendus. Le code ci-dessus contient un programme complet utilisant les flux et les expressions lambda de la première image ci-dessus.

importer java. texte. Format de nombre;

importer java. util. ArrayList;

public class TallySales {

public static void principal (String [] args) {

ArrayList

sales = new ArrayList <> (); Devise NumberFormat = NombreFormat. getCurrencyInstance ();

fillTheList (ventes);

double total = ventes. stream ()

. filter ((vente) -> sale. getItem (). est égal à ("DVD"))

. map ((vente) -> vente. getPrice ())

. réduire (0.0, (prix1, prix2) -> prix1 + prix2);

Système. en dehors. println (devise, format (total));

}

static void fillTheList (ArrayList

ventes) { ventes. ajouter (nouvelle vente ("DVD", 15. 00));

ventes. ajouter (nouvelle vente ("Livre", 12. 00));

ventes. ajouter (nouvelle vente ("DVD", 21. 00));

ventes. ajouter (nouvelle vente ("CD", 5. 25));

}

}

Le code requiert Java 8 ou une version ultérieure. Si votre IDE est configuré pour une version antérieure de Java, vous devrez peut-être bricoler les paramètres de l'EDI. Vous devrez peut-être même télécharger une version plus récente de Java.

La lettre en gras est une grande déclaration d'affectation Java. Le côté droit de l'instruction contient une séquence d'appels de méthode. Chaque appel de méthode renvoie un objet, et chacun de ces objets est la chose avant le point dans l'appel de méthode suivant. C'est comme ça que vous formez la chaîne de montage.

Par exemple, près du début du code en gras, le nom

ventes fait référence à un objet ArrayList . Chaque objet ArrayList possède une méthode stream . Dans le code ci-dessus, ventes. stream () est un appel à la méthode ArrayList de l'objet stream . La méthode stream renvoie une instance de la classe Java

Stream . (Quelle surprise!) Donc ventes. stream () fait référence à un objet Stream . Obtenir toutes les ventes de DVD.

Tout objet

Flux possède une méthode filtre . Donc ventes. courant(). filter⁣ ((vente) -> vente. getItem (). equals ("DVD"))

est un appel à la méthode

objectStream de l'objet filter . Le motif continue. La méthode

map de l'objet Stream renvoie encore un autre objet Stream - un objet Stream contenant des prix.

Obtenir le prix de chaque vente de DVD.

Pour ce flux de prix, appliquez la méthode réduire , qui donne une valeur double , soit le total des prix des DVD.

Obtenir le prix total de toutes les ventes de DVD.

En utilisant Streams et Lambda Expressions en Java - dummies

Le choix des éditeurs

Résolution des conflits de ressources humaines avec Microsoft Office Project 2007 - dummies

Résolution des conflits de ressources humaines avec Microsoft Office Project 2007 - dummies

Lorsqu'un membre de l'équipe de projet est suropposée dans votre projet Microsoft Office Project 2007, vous pouvez prendre des mesures pour corriger le problème en utilisant les suggestions suivantes. Gardez à l'esprit que les circonstances de votre projet déterminent si une solution particulière est réalisable. Par exemple, vous pouvez ajouter des ressources uniquement si votre budget le permet ...

Comment enregistrer plusieurs lignes de base dans Project 2013 - mannequins

Comment enregistrer plusieurs lignes de base dans Project 2013 - mannequins

Le concept de lignes de base multiples semble presque contraire définition d'une ligne de base. Après tout, le but d'une base de référence est de mettre l'enjeu proverbial dans le sable et de mesurer les progrès contre elle. Vous pouvez conserver plusieurs lignes de base dans Project 2013 à plusieurs fins. Considérez ces raisons: Vous avez un plan de base pour ...

Comment enregistrer une référence dans Project 2013 - mannequins

Comment enregistrer une référence dans Project 2013 - mannequins

Vous pouvez enregistrer une référence à tout moment en ouvrant la boîte de dialogue Définir la ligne de base dans Project 2013. Un paramètre - qui contrôle la manière dont le projet regroupe les données dans les tâches récapitulatives lorsque vous définissez une ligne de base pour une partie des tâches - nécessite une explication. Après avoir enregistré une base de données la première fois dans Project 2013, ...

Le choix des éditeurs

Comment classer les modèles d'analyse prédictive - mannequins

Comment classer les modèles d'analyse prédictive - mannequins

Vous avez plusieurs façons de classer les modèles utilisés pour l'analyse prédictive. En général, vous pouvez les trier en fonction des problèmes métier qu'ils résolvent et des principales fonctions métier qu'ils servent (ventes, publicité, ressources humaines ou gestion des risques, par exemple). L'implémentation mathématique utilisée dans le modèle (comme les statistiques, l'exploration de données et la machine ...

Comment appliquer n'importe quelle grappe de colonies dans l'analyse prédictive - les nuls

Comment appliquer n'importe quelle grappe de colonies dans l'analyse prédictive - les nuls

Un exemple naturel de groupe auto-organisateur vous pouvez appliquer dans le comportement d'analyse prédictive est une colonie de fourmis à la recherche de nourriture. Les fourmis optimisent collectivement leur trajectoire de manière à prendre toujours le chemin le plus court possible vers une cible alimentaire. Même si vous essayez de déranger une colonie de fourmis et de les empêcher de ...

Comment choisir un algorithme pour un modèle d'analyse prédictive - mannequins

Comment choisir un algorithme pour un modèle d'analyse prédictive - mannequins

Diverses statistiques, data-mining et des algorithmes d'apprentissage automatique sont disponibles pour votre modèle d'analyse prédictive. Vous êtes dans une meilleure position pour sélectionner un algorithme après avoir défini les objectifs de votre modèle et sélectionné les données sur lesquelles vous allez travailler. Certains de ces algorithmes ont été développés pour résoudre des problèmes métier spécifiques, améliorer des algorithmes existants ou fournir ...

Le choix des éditeurs

Excel Tableaux de bord et rapports: La fonction VLOOKUP - les nuls

Excel Tableaux de bord et rapports: La fonction VLOOKUP - les nuls

Ne vous feront rien tout bien si vous ne pouvez pas gérer efficacement vos modèles de données. La fonction VLOOKUP est le roi de toutes les fonctions de recherche dans Excel. Le but de VLOOKUP est de trouver une valeur spécifique à partir d'une colonne de données où la valeur de ligne la plus à gauche correspond à un critère donné. Prenez ...

Excel Outils d'analyse de données - dummies

Excel Outils d'analyse de données - dummies

L'outil d'analyse d'excel est un complément utile qui fournit un ensemble complet d'outils d'analyse statistique . Voici quelques outils dans le ToolPak. Outil Analyse Anova: Facteur unique Analyse de variance pour deux échantillons ou plus Anova: Facteur double avec réplication Analyse de la variance avec deux variables indépendantes et observations multiples ...

Excelent Touches de raccourci d'entrée de données - mannequins

Excelent Touches de raccourci d'entrée de données - mannequins

Lorsque vous travaillez dans Excel et saisissez des données dans une cellule, il est essentiel pour compléter l'entrée soit en cliquant sur une autre cellule avec le pointeur de la souris ou en utilisant l'une des touches de raccourci pratiques montrées ici pour déplacer le curseur de la cellule: Appuyez sur les touches To Arrow (& uarr;, & darr; move ...