Java >> Tutoriel Java >  >> Tag >> HashMap

Calcul Java HashMap()

La méthode Java HashMap compute() calcule une nouvelle valeur et l'associe à la clé spécifiée dans le hashmap.

La syntaxe du compute() méthode est :

hashmap.compute(K key, BiFunction remappingFunction)

Ici, hashmap est un objet du HashMap classe.

Paramètres de calcul()

Le compute() la méthode prend 2 paramètres :

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

Remarque  :La fonction remappingFunction peut prendre deux arguments. Donc, considéré comme BiFunction .

valeur de retour de calcul()

  • renvoie la nouvelle valeur associé à la clé
  • renvoie null si aucune valeur n'est associée à la clé

Remarque :Si remappingFunction résultats null , puis le mappage pour 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<String, Integer> 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);
  }
}

Sortie

HashMap: {Pant=150, Bag=300, Shoes=200}
Discounted Price of Shoes: 180
Updated HashMap: {Pant=150, Bag=300, Shoes=180

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

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

Ici,

  • (clé, valeur) -> valeur - valeur * 10/100 - C'est une expression lambda. Cela réduit l'ancienne valeur de Chaussures de 10 % et le retourne. Pour en savoir plus sur l'expression lambda, consultez Java Lambda Expressions.
  • prix.compute() - Associe la nouvelle valeur renvoyée par l'expression lambda au mappage pour Shoes .

Nous avons utilisé l'expression lambda comme fonction de remappage qui ratisse deux paramètres.

Remarque :D'après la documentation officielle de Java, la méthode HashMap merge() est plus simple que le 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

Balise Java