Méthode computeIfAbsent() de Java HashMap

Java HashMap Java HashMap

La méthode computeIfAbsent() recalcule la valeur pour la clé spécifiée dans le hashMap ; si la clé n'existe pas, elle est ajoutée au hashMap.

La syntaxe de computeIfAbsent() est :

hashmap.computeIfAbsent(K key, Function remappingFunction)

Remarque :hashmap est un objet de la classe HashMap.

Détails des paramètres :

  • key - la clé
  • remappingFunction - la fonction de remappage, utilisée pour recalculer la valeur

Valeur de retour

Si la valeur correspondant à la clé n'existe pas, la valeur recalculée par remappingFunction est obtenue et stockée comme valeur pour cette clé ; sinon, la valeur est renvoyée.

Exemple

L'exemple suivant montre l'utilisation de la méthode computeIfAbsent() :

Exemple

import java.util.HashMap;

class Main {
    public static void main(String[] args) {
        // Créer un HashMap
        HashMap<String, Integer> prices = new HashMap<>();

        // Ajouter des entrées de mappage au HashMap
        prices.put("Shoes", 200);
        prices.put("Bag", 300);
        prices.put("Pant", 150);
        System.out.println("HashMap: " + prices);

        // Calculer la valeur pour Shirt
        int shirtPrice = prices.computeIfAbsent("Shirt", key -> 280);
        System.out.println("Price of Shirt: " + shirtPrice);

        // Afficher le HashMap mis à jour
        System.out.println("HashMap mis à jour : " + prices);
    }
}

La sortie du programme ci-dessus est :

HashMap: {Pant=150, Bag=300, Shoes=200}
Price of Shirt: 280
Updated HashMap: {Pant=150, Shirt=280, Bag=300, Shoes=200}

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

Remarquez l'expression :

prices.computeIfAbsent("Shirt", key -> 280)

Dans le code, nous avons utilisé une fonction anonyme, une expression lambda.key-> 280Comme fonction de remappage, prices.computeIfAbsent() associe la nouvelle valeur renvoyée par l'expression lambda à Shirt.

Comme Shirt n'existe pas dans le HashMap, une nouvelle paire clé/valeur est ajoutée.

Pour en savoir plus sur les expressions lambda, consultezExpressions lambda Java。

Cas où la clé existe déjà :

Exemple

import java.util.HashMap;

class Main {
    public static void main(String[] args) {
        // Créer un HashMap
        HashMap<String, Integer> prices = new HashMap<>();

        // Ajouter des relations de mappage au HashMap
        prices.put("Shoes", 180);
        prices.put("Bag", 300);
        prices.put("Pant", 150);
        System.out.println("HashMap: " + prices);

        // Le mappage pour Shoes existe déjà
        // Aucune nouvelle valeur n'est calculée pour Shoes
        int shoePrice = prices.computeIfAbsent("Shoes", (key) -> 280);
        System.out.println("Price of Shoes: " + shoePrice);

        // Afficher le HashMap mis à jour
        System.out.println("HashMap mis à jour : " + prices);
    }
}

La sortie du programme ci-dessus est :

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

Dans l'exemple ci-dessus, le mappage pour Shoes existe déjà dans le HashMap, donc aucune nouvelle valeur n'est calculée pour Shoes.

Java HashMap Java HashMap

Autres extensions