English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Si la clé existe déjà dans la clé de hachage, la méthode computeIfPresent() de Java HashMap calcule une nouvelle valeur et l'associe à la clé spécifiée.
La syntaxe de computeIfPresent() méthode est :
hashmap.computeIfPresent(K key, BiFunction remappingFunction)
computeIfPresent() méthode a deux paramètres :
key - la clé associée à la valeur calculée
remappingFunction - PourCléFonction de calcul de nouvelle valeur
Remarque:remappingFunction peut accepter deux paramètres.
Retourne la nouvelle valeur associée à la clé spécifiée
Si il n'y a pas de valeur associée à la clé, alors retourne null
Remarque:Si le résultat de remappingFunction est null, alors la clé spécifiée sera suppriméeCléde la carte.
import java.util.HashMap; class Main { public static void main(String[] args) { // Créer une HashMap HashMap<String, Integer> prices = new HashMap<>(); // Insérer une entrée dans la HashMap prices.put("Shoes", 200); prices.put("Bag", 300); prices.put("Pant", 150); System.out.println("HashMap: ") + prices); //Utiliser10Pour recalculer la valeur du shoe avec la TVA de % int shoesPrice = prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100); System.out.println("Le prix du shoe après la TVA: ") + shoesPrice); // Imprimer la HashMap mise à jour System.out.println("La HashMap mise à jour: ") + prices); } }
Résultat de la sortie
HashMap: {Pant=150, Bag=300, Shoes=200} Le prix du shoe après la TVA: 220 La HashMap mise à jour: {Pant=150, Bag=300, Shoes=220}}
Dans l'exemple précédent, nous avons créé une carte de hachage nommée prices. Notez l'expression
prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100)
Here,
(key, value) -> value + value*10/100 - It is a lambda expression. It calculates the new value of Shoes and returns. For more information about lambda expressions, please visitJava Lambda expressions.
prices.computeIfPresent() - Associates the new value returned by the lambda expression with the Shoes mapping. This is the only possible, because Shoes is already mapped to the value in the hash map.
computeIfPresent() method cannot be used if the key does not exist in the hash table.
Recommended reading
HashMap compute() - Calculates the value of the specified key
HashMap computeIfAbsent() - Calculates the value if the specified key is not mapped to any value
Java HashMap merge() - Performs the same task as compute()