Java HashMap compute ()

De Java HashMap compute () - methode berekent een nieuwe waarde en koppelt deze aan de opgegeven sleutel in de hashmap.

De syntaxis van de compute()methode is:

 hashmap.compute(K key, BiFunction remappingFunction)

Hier is hashmap een object van de HashMapklasse.

compute () Parameters

De compute()methode heeft 2 parameters nodig:

  • key - sleutel waarmee de berekende waarde moet worden geassocieerd
  • remappingFunction - functie die de nieuwe waarde voor de opgegeven sleutel berekent

Opmerking : De remappingFunction kan twee argumenten hebben. Daarom beschouwd als BiFunction.

compute () Retourwaarde

  • geeft de nieuwe waarde terug die aan de sleutel is gekoppeld
  • geeft terug nullals er geen waarde is gekoppeld aan de sleutel

Opmerking : als remappingFunction resultaten oplevert null, wordt de toewijzing voor de opgegeven sleutel verwijderd.

Voorbeeld: HashMap compute () om een ​​nieuwe waarde in te voegen

 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); ) )

Uitvoer

 HashMap: (Broek = 150, Tas = 300, Schoenen = 200) Gereduceerde prijs van schoenen: 180 Bijgewerkte HashMap: (Broek = 150, Tas = 300, Schoenen = 180

In het bovenstaande voorbeeld hebben we een hashmap gemaakt met de naam prijzen. Let op de uitdrukking,

 prices.compute("Shoes", (key, value) -> value - value * 10/100)

Hier,

  • (sleutel, waarde) -> waarde - waarde * 10/100 - Het is een lambda-uitdrukking. Het verlaagt de oude waarde van schoenen met 10% en geeft het terug. Bezoek Java Lambda Expressions voor meer informatie over de lambda-expressie.
  • Prices.compute () - Koppelt de nieuwe waarde die wordt geretourneerd door lambda-expressie aan de mapping voor Shoes.

We hebben lambda-expressie gebruikt als remapping-functie die twee parameters harkt.

Opmerking : volgens de officiële documentatie van Java is de methode HashMap merge () eenvoudiger dan de compute()methode.

Aanbevolen literatuur

  • HashMap computeIfAbsent () - berekent de waarde als de opgegeven sleutel niet is toegewezen aan een waarde
  • HashMap computeIfPresent () - berekent de waarde als de opgegeven sleutel al aan een waarde is toegewezen

Interessante artikelen...