Java HashMap compute ()

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 HashMapKlasse.

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, nullwenn 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

Interessante Beiträge...