English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Wenn der Hash-Schlüssel bereits diesen Schlüssel enthält, berechnet die Methode computeIfPresent() von Java HashMap einen neuen Wert und verknüpft ihn mit dem angegebenen Schlüssel.
Syntax der computeIfPresent() Methode:
hashmap.computeIfPresent(K key, BiFunction remappingFunction)
computeIfPresent() Methode hat zwei Parameter:
key - mit dem berechneten Wert verknüpfte Schlüssel
remappingFunction - fürSchlüsselFunktion zur Berechnung des neuen Wertes
Beachten Sie:remappingFunction kann zwei Parameter akzeptieren.
Rückgabe des neuen Wertes, der mit dem angegebenen Schlüssel verknüpft ist
Wenn es keine mit dem Schlüssel verknüpfte Wert gibt, wird null zurückgegeben
Beachten Sie:Wenn das Ergebnis von remappingFunction null ist, wird der angegebeneSchlüsselzuordnung.
import java.util.HashMap; class Main { public static void main(String[] args) { // HashMap erstellen HashMap<String, Integer> prices = new HashMap<>(); // Eintrag in die HashMap einfügen prices.put("Shoes", 200); prices.put("Bag", 300); prices.put("Pant", 150); System.out.println("HashMap: " + prices); //mit10Prozent der Mehrwertsteuer neu berechnet den Wert des Schuhs int shoesPrice = prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100); System.out.println("Preis des Schuhs inklusive Mehrwertsteuer: " + shoesPrice); // Drucken Sie die aktualisierte HashMap System.out.println("Aktualisierte HashMap: " + prices); } }
Ausgaberesultat
HashMap: {Pant=150, Bag=300, Shoes=200} Preis des Schuhs inklusive Mehrwertsteuer: 220 Aktualisierte HashMap: {Pant=150, Bag=300, Shoes=220}}
In diesem Beispiel haben wir eine namens "prices" HashMap erstellt. Beachten Sie den Ausdruck
prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100)
hier,
(key, value) -> value + value*10/100 - ist ein Lambda-Ausdruck. Er berechnet den neuen Wert von Shoes und gibt ihn zurück. Weitere Informationen zu Lambda-Ausdrücken finden Sie unterJava Lambda-Ausdrücke.
prices.computeIfPresent() - Verknüpft den neuen Wert, den die Lambda-Ausdrücke zurückgeben, mit der Zuordnung von Shoes. Dies ist die einzige Möglichkeit, weil Shoes bereits auf den Wert in der Hash-Mapping verweist.
Wenn der Schlüssel nicht im Hash-Table existiert, kann die Methode computeIfPresent() nicht verwendet werden.
Empfohlene Lektüre
HashMap compute() - Berechnung des Wertes des angegebenen Schlüssels
HashMap computeIfAbsent() - Wenn der angegebene Schlüssel nicht auf einen Wert verweist, wird dieser berechnet
Java HashMap merge() - Ausführung der gleichen Aufgabe wie compute()