Méthode merge() de Java HashMap
La méthode merge() vérifie d'abord si la clé spécifiée existe. Si elle n'existe pas, elle ajoute la paire clé-valeur au hashMap.
La syntaxe de la méthode merge() est :
hashmap.merge(key, value, remappingFunction)
Remarque :hashmap est un objet de la classe HashMap.
Détails des paramètres :
- key - la clé
- value - la valeur
- 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 est renvoyée ; si elle existe, la valeur recalculée via remappingFunction est renvoyée.
Exemple
L'exemple suivant illustre l'utilisation de la méthode merge() :
Exemple
class Main {
public static void main(String[] args) {
// Créer un HashMap
HashMap<String, Integer> prices = new HashMap<>();
// Insérer des mappages dans le HashMap
prices.put("Shoes", 200);
prices.put("Bag", 300);
prices.put("Pant", 150);
System.out.println("HashMap: " + prices);
int returnedValue = prices.merge("Shirt", 100, (oldValue, newValue) -> oldValue + newValue);
System.out.println("Prix de la chemise : " + returnedValue);
// Afficher le HashMap mis à jour
System.out.println("HashMap mis à jour : " + prices);
}
}
L'exécution du programme ci-dessus produit la sortie suivante :
HashMap: {Pant=150, Bag=300, Shoes=200}
Price of Shirt: 100
Updated HashMap: {Pant=150, Shirt=100, Bag=300, Shoes=200}
Dans l'exemple ci-dessus, nous avons créé un HashMap nommé prices.
Remarquez l'expression :
prices.merge("Shirt", 100, (oldValue, newValue) -> oldValue + newValue)Dans le code, nous avons utilisé une expression lambda de fonction anonyme (oldValue, newValue) -> oldValue + newValue) comme fonction de remappage.
Comme la clé Shirt n'est pas dans prices, la méthode merge() insère le mappage Shirt=100 dans prices, et le résultat d'exécution de la fonction de remappage est ignoré.
Pour en savoir plus sur les expressions lambda, consultezExpressions lambda Java。
La méthode merge() de HashMap insère une entrée de mappage avec une clé dupliquée :
Exemple
class Main {
public static void main(String[] args) {
// Créer un HashMap
HashMap<String, String> countries = new HashMap<>();
// Insérer des entrées de mappage dans le HashMap
countries.put("Washington", "America");
countries.put("Canberra", "Australia");
countries.put("Madrid", "Spain");
System.out.println("HashMap: " + countries);
// Fusionner le mappage avec la clé Washington
String returnedValue = countries.merge("Washington", "USA", (oldValue, newValue) -> oldValue + "/" + newValue);
System.out.println("Washington: " + returnedValue);
// Afficher le HashMap mis à jour
System.out.println("Updated HashMap: " + countries);
}
}
L'exécution du programme ci-dessus produit la sortie suivante :
HashMap: {Madrid=Spain, Canberra=Australia, Washington=America}
Washington: America/USA
Updated HashMap: {Madrid=Spain, Canberra=Australia, Washington=America/USA},
Dans l'exemple ci-dessus, nous avons créé un HashMap nommé countries.
Remarquez l'expression :
countries.merge("Washington", "USA", (oldValue, newValue) -> oldValue + "/" + newValue)
Ici, nous avons utilisé l'expression lambda(oldValue, newValue) -> oldValue + "/" + newValue)comme fonction de remappage.
Comme la clé washington existe déjà dans countries, l'ancienne valeur est remplacée par la valeur renvoyée par la fonction de remappage. Par conséquent, le mappage pour Washington contient America/USA.
Autres extensions
Java HashMap