Java HashMap computeIfPresent ()

La méthode Java HashMap computeIfPresent () calcule une nouvelle valeur et l'associe à la clé spécifiée si la clé est déjà présente dans le hashmap.

La syntaxe de la computeIfPresent()méthode est:

 hashmap.computeIfPresent(K key, BiFunction remappingFunction)

Ici, hashmap est un objet de la HashMapclasse.

Paramètres computeIfPresent ()

La computeIfPresent()méthode prend 2 paramètres:

  • key - clé à laquelle la valeur calculée doit être associée
  • remappingFunction - fonction qui calcule la nouvelle valeur pour la clé spécifiée

Remarque : la fonction remappingFunction peut prendre deux arguments. Par conséquent, considéré comme BiFunction.

Valeur de retour computeIfPresent ()

  • renvoie la nouvelle valeur associée à la clé spécifiée
  • retourne nullsi aucune valeur associée à la clé

Remarque : Si remappingFunction en résulte null, le mappage de la clé spécifiée est supprimé.

Exemple 1: Java HashMap computeIfPresent ()

 import java.util.HashMap; class Main ( public static void main(String() args) ( // create an HashMap HashMap prices = new HashMap(); // insert entries to the HashMap prices.put("Shoes", 200); prices.put("Bag", 300); prices.put("Pant", 150); System.out.println("HashMap: " + prices); // recompute the value of Shoes with 10% VAT int shoesPrice = prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100); System.out.println("Price of Shoes after VAT: " + shoesPrice); // print updated HashMap System.out.println("Updated HashMap: " + prices); ) )

Production

 HashMap: (Pantalon = 150, Sac = 300, Chaussures = 200) Prix des chaussures après TVA: 220 HashMap mis à jour: (Pantalon = 150, Sac = 300, Chaussures = 220))

Dans l'exemple ci-dessus, nous avons créé un hashmap nommé price. Remarquez l'expression,

 prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100)

Ici,

  • (clé, valeur) -> valeur + valeur * 10/100 est une expression lambda. Il calcule la nouvelle valeur de Shoes et la renvoie. Pour en savoir plus sur l'expression lambda, visitez Expressions Java Lambda.
  • price.computeIfPresent () associe la nouvelle valeur renvoyée par l'expression lambda au mappage de Shoes. Cela n'est possible que parce que Shoes est déjà mappé à une valeur dans le hashmap.

Ici, l'expression lambda agit comme une fonction de remappage. Et, cela prend deux paramètres.

Remarque : nous ne pouvons pas utiliser la computeIfPresent()méthode si la clé n'est pas présente dans le hashmap.

lecture recommandée

  • HashMap compute () - calcule la valeur de la clé spécifiée
  • HashMap computeIfAbsent () - calcule la valeur si la clé spécifiée n'est mappée à aucune valeur
  • Java HashMap merge () - effectue la même tâche que compute()

Articles intéressants...