English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base Java

Contrôle de flux Java

Java Tableau

Java Orienté Objet (I)

Java Orienté Objet (II)

Java Orienté Objet (III)

Gestion des exceptions Java

Java Liste (List)

Java Queue (file d'attente)

Java Map

Java Set

Java Entrée/Sortie (I/O)

Reader Java/Writer

Autres sujets Java

Utilisation et exemple de la méthode computeIfAbsent() de Java HashMap

Java HashMap methods

La méthode computeIfAbsent() de Java HashMap calcule une nouvelle valeur et l'associe à la clé spécifiée si cette clé n'est pas associée à aucune valeur dans la table de hachage.

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

hashmap.computeIfAbsent(K clé, Function fonctionDeRemapage)

Paramètres de computeIfAbsent()

La méthode computeIfAbsent() a deux paramètres :

  • key - 与计算值关联的键

  • de la valeur calculée associée à la clé - remappingFunctionCléFonction pour calculer une nouvelle valeur spécifiée pour

Remarque:La fonction de remapping ne peut pas accepter deux paramètres.

computeIfAbsent() retourne la valeur

  • Retourne la nouvelle valeur ou l'ancienne valeur associée à la clé spécifiée

  • Fonction pour calculer une nouvelle valeur spécifiée pour la clé

Remarque:Si le résultat de remappingFunction est null, la clé spécifiéeCléde la correspondance.

Exemple1:Java HashMap de computeIfAbsent()

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);
    // Calculer la valeur du chemise
    int shirtPrice = prices.computeIfAbsent("Shirt", key -> 280);
    System.out.println("Prix du chemise: ") + shirtPrice);
    // Imprimer la mise à jour de la HashMap
    System.out.println("Updated HashMap: ") + prices);
  }
}

Output result

HashMap: {Pant=150, Bag=300, Shoes=200}
Prix du chemise: 280
Updated HashMap: {Pant=150, Shirt=280, Bag=300, Shoes=200}

Dans l'exemple précédent, nous avons créé une carte de hachage nommée prices. Notez l'expression

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

ici,

  • key -> 280 - C'est une expression lambda. Elle retourne la valeur28Pour plus d'informations sur les expressions lambda, veuillez visiterJava Lambda expressions

  • prices.computeIfAbsent() -  Lier la nouvelle valeur retournée par l'expression lambda à la correspondance de Shirt. C'est possible car Shirt n'est pas encore mappé à aucune valeur dans le hashmap.

Exemple2:si la clé existe déjà, utilisez computeIfAbsent()

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", 180);
    prices.put("Bag", 300);
    prices.put("Pant", 150);
    System.out.println("HashMap: ") + prices);
    //La correspondance de Shoes existe déjà
    //Ne pas calculer la nouvelle valeur de Shoes
    int shoePrice = prices.computeIfAbsent("Shoes", (key) -> 280);
    System.out.println("Prix des chaussures: ") + shoePrice);
    //Print the updated HashMap
    System.out.println("Updated HashMap: ") + prices);
  }
}

Output result

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

In the above examples, the mapping of Shoes already exists in the hash map. Therefore, the computeIfAbsent() method will not calculate a new value for Shoes.

Recommended reading

Java HashMap methods