Die Java HashMap compute () -Methode berechnet einen neuen Wert und ordnet ihn dem angegebenen Schlüssel in der Hashmap zu.
Die Syntax der compute()
Methode lautet:
hashmap.compute(K key, BiFunction remappingFunction)
Hier ist Hashmap ein Objekt der HashMap
Klasse.
compute () Parameter
Die compute()
Methode akzeptiert 2 Parameter:
- Schlüssel - Schlüssel, dem der berechnete Wert zugeordnet werden soll
- remappingFunction - Funktion, die den neuen Wert für den angegebenen Schlüssel berechnet
Hinweis : Die remappingFunction kann zwei Argumente annehmen. Daher gilt als BiFunction
.
compute () Rückgabewert
- Gibt den neuen Wert zurück, der dem Schlüssel zugeordnet ist
- Gibt zurück,
null
wenn dem Schlüssel kein Wert zugeordnet ist
Hinweis : Wenn remappingFunction resultiert null
, wird die Zuordnung für den angegebenen Schlüssel entfernt.
Beispiel: HashMap compute () zum Einfügen eines neuen Werts
import java.util.HashMap; class Main ( public static void main(String() args) ( // create an HashMap HashMap 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); ) )
Ausgabe
HashMap: (Hose = 150, Tasche = 300, Schuhe = 200) Ermäßigter Preis für Schuhe: 180 Aktualisierte HashMap: (Hose = 150, Tasche = 300, Schuhe = 180
Im obigen Beispiel haben wir eine Hashmap mit dem Namen Preise erstellt. Beachten Sie den Ausdruck,
prices.compute("Shoes", (key, value) -> value - value * 10/100)
Hier,
- (Schlüssel, Wert) -> Wert - Wert * 10/100 - Es ist ein Lambda-Ausdruck. Es reduziert den alten Wert von Schuhen um 10% und gibt ihn zurück. Um mehr über den Lambda-Ausdruck zu erfahren, besuchen Sie Java Lambda Expressions.
- price.compute () - Ordnet den neuen Wert, der vom Lambda-Ausdruck zurückgegeben wird, der Zuordnung für Schuhe zu.
Wir haben den Lambda-Ausdruck als Remapping-Funktion verwendet, die zwei Parameter erfasst.
Hinweis : Gemäß der offiziellen Dokumentation von Java ist die HashMap merge () -Methode einfacher als die compute()
Methode.
Literatur-Empfehlungen
- HashMap computeIfAbsent () - berechnet den Wert, wenn der angegebene Schlüssel keinem Wert zugeordnet ist
- HashMap computeIfPresent () - berechnet den Wert, wenn der angegebene Schlüssel bereits einem Wert zugeordnet ist