Java HashMap compute () -metoden beregner en ny verdi og knytter den til den angitte nøkkelen i hashmap.
Syntaksen til compute()
metoden er:
hashmap.compute(K key, BiFunction remappingFunction)
Her er hashmap et objekt i HashMap
klassen.
beregne () parametere
Den compute()
metoden tar 2 parametre:
- nøkkel - nøkkel som den beregnede verdien skal assosieres med
- remappingFunction - funksjon som beregner den nye verdien for den angitte nøkkelen
Merk : RemappingFunction kan ta to argumenter. Derfor betraktet som BiFunction
.
beregne () Returverdi
- returnerer den nye verdien som er knyttet til nøkkelen
- returnerer
null
hvis ingen verdi er knyttet til nøkkelen
Merk : Hvis resultatene av remappingFunction blir fjernet null
, blir kartleggingen for den angitte nøkkelen fjernet.
Eksempel: HashMap-beregning () for å sette inn ny verdi
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); ) )
Produksjon
HashMap: (Pant = 150, Bag = 300, Shoes = 200) Rabattpris på sko: 180 Oppdatert HashMap: (Pant = 150, Bag = 300, Sko = 180
I eksemplet ovenfor har vi opprettet en hashmap som heter priser. Legg merke til uttrykket,
prices.compute("Shoes", (key, value) -> value - value * 10/100)
Her,
- (nøkkel, verdi) -> verdi - verdi * 10/100 - Det er et lambdauttrykk. Det reduserer den gamle verdien av Sko med 10% og returnerer den. For å lære mer om lambdauttrykket, besøk Java Lambda Expressions.
- prices.compute () - Knytter den nye verdien som returneres av lambda-uttrykk til kartleggingen for Sko.
Vi har brukt lambdauttrykk som remapping-funksjon som raker to parametere.
Merk : I henhold til den offisielle dokumentasjonen til Java er HashMap merge () -metoden enklere enn compute()
metoden.
Anbefalt lesing
- HashMap computeIfAbsent () - beregner verdien hvis den spesifiserte nøkkelen ikke er tilordnet noen verdi
- HashMap computeIfPresent () - beregner verdien hvis den angitte nøkkelen allerede er tilordnet en verdi