Dans cet article


Offres d'emploi

Tags

JAVA 8 – Map – ComputeIfPresent pour la gestion des caches

Nous avons vu dans l’article précédent que la méthode computeIfAbsent permettait de gérer facilement l’assignation d’une variable dans une Map si la valeur représentée par la clé n’était pas présente. Cette option est très pratique et permet de gagner énormément de temps lors de la création et de la gestion d’un cache applicatif.

Un autre besoin récurrent est la mise à jour des données à l’intérieur du cache : on veut alors modifier une valeur pour une clé existant dans la Map. C’est à ça que sert la méthode computeIfPresent.

ComputeIfPresent

La méthode prend en paramètre la clé, ainsi queV> remappingFunction qui en fonction de l’élément trouvé doit créer un nouvel élément.

La syntaxe est la suivante :

hashMap.computeIfPresent(key, (id, commande) -> new Commande(100));

Dans cet exemple, si la commande représentée par la clé est présente dans la Map, alors l’expression LAMBDA est appelée afin de mettre à jour la commande. Ceci peut par exemple être utile dans le cas où l’on souhaite récupérer la commande et lui appliquer un code promo. Auquel cas il suffit de d’appeler computeIfPresent avec la bonne expression LAMBDA. Ainsi on récupère la commande à jour et la mise à jour est aussi répercutée dans la Map.

On peut aussi imaginer si la commande est présente qu’il soit nécessaire de la remplacer par une nouvelle version, par exemple en la rechargeant depuis la base de données.

L'équipe AXOPEN

Voir aussi les articles suivants

Nous allons dans cet article découvrir une nouveauté de JAVA 8 bien pratique pour l’interface Map : la méthode computeIfAbsent. Utilisation des maps Un exemple courant d’utilisation des maps est la création de caches applicatifs: on utilise généralement une HashMap dans laquelle on enregistre les éléments que l’on utilise souvent. Chaque élément est indexé par une clé qui permet de retrouver l’élément désiré. La majorité du temps, le fonctionnement d’un tel cas est le suivant : on cherche si l’objet est présent dans le cache, si oui, on le récupère, sinon on le construit et on le stocke dans la HashMap.
Lire l'article

Etude de la performance de l’utilisation de la nouvelle API JAVA 8 Stream pour le traitement de string (chaîne de caractère) But de l’article Nous allons essayer d’étudier les différences de performances pour réaliser des traitements sur des ensembles ordonnées ou non (list, hahset, treeset) avec l’utilisation des Stream et lambda JAVA 8. Puis nous comparerons l’utilisons classique des streams avec les parallelStream pour voir si la parallélisation permet de gros gain de performance.
Lire l'article

Introduction à l’utilisation des STREAM Java 8 arrive avec une toute nouvelle API Stream qui utilise les Lambda. Cette nouvelle API offre la possibilité de simplifier l’écriture, d’améliorer la performance ainsi d’augmenter la lisibilité d’un certain nombre de code. Nous allons essayer ici de voir comment les utiliser et dans de voir dans quels cas l’utilisation de cette API est utile. Dans un second article, nous nous interresserons aux performances des stream et mode « normal » et en mode « parallel ».
Lire l'article