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 HashMap
klasse.
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
null
als 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