La méthode Java HashMap compute () calcule une nouvelle valeur et l'associe à la clé spécifiée dans le hashmap.
La syntaxe de la compute()
méthode est:
hashmap.compute(K key, BiFunction remappingFunction)
Ici, hashmap est un objet de la HashMap
classe.
Paramètres compute ()
La compute()
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 compute ()
- renvoie la nouvelle valeur associée à la clé
- retourne
null
si aucune valeur associée à la clé
Remarque : Si remappingFunction en résulte null
, le mappage de la clé spécifiée est supprimé.
Exemple: HashMap compute () pour insérer une nouvelle valeur
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% discount int newPrice = prices.compute("Shoes", (key, value) -> value - value * 10/100); System.out.println("Discounted Price of Shoes: " + newPrice); // print updated HashMap System.out.println("Updated HashMap: " + prices); ) )
Production
HashMap: (Pantalon = 150, Sac = 300, Chaussures = 200) Prix réduit des chaussures: 180 HashMap mis à jour: (Pantalon = 150, Sac = 300, Chaussures = 180
Dans l'exemple ci-dessus, nous avons créé un hashmap nommé price. Remarquez l'expression,
prices.compute("Shoes", (key, value) -> value - value * 10/100)
Ici,
- (clé, valeur) -> valeur - valeur * 10/100 - C'est une expression lambda. Il réduit l'ancienne valeur des chaussures de 10% et la renvoie. Pour en savoir plus sur l'expression lambda, visitez Expressions Java Lambda.
- price.compute () - Associe la nouvelle valeur renvoyée par l'expression lambda au mappage de Shoes.
Nous avons utilisé l'expression lambda comme fonction de remappage qui ratisse deux paramètres.
Remarque : selon la documentation officielle de Java, la méthode HashMap merge () est plus simple que la compute()
méthode.
lecture recommandée
- HashMap computeIfAbsent () - calcule la valeur si la clé spécifiée n'est mappée à aucune valeur
- HashMap computeIfPresent () - calcule la valeur si la clé spécifiée est déjà mappée à une valeur