Java HashMap computeIfPresent () -metoden beregner en ny værdi og knytter den til den angivne nøgle, hvis nøglen allerede er til stede i hashmap.
Metodens syntaks computeIfPresent()er:
 hashmap.computeIfPresent(K key, BiFunction remappingFunction)
Her er hashmap et objekt i HashMapklassen.
computeIfPresent () Parametre
Den computeIfPresent()metode tager 2 parametre:
- nøgle - nøgle, som den beregnede værdi skal tilknyttes
 - remappingFunction - funktion, der beregner den nye værdi for den angivne nøgle
 
Bemærk : RemappingFunction kan tage to argumenter. Derfor betragtes som BiFunction.
computeIfPresent () Returværdi
- returnerer den nye værdi, der er knyttet til den angivne nøgle
 - returnerer, 
nullhvis der ikke er nogen værdi tilknyttet nøglen 
Bemærk : Hvis der vises en remappingFunction null, fjernes kortlægningen for den angivne nøgle .
Eksempel 1: Java HashMap computeIfPresent ()
 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% VAT int shoesPrice = prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100); System.out.println("Price of Shoes after VAT: " + shoesPrice); // print updated HashMap System.out.println("Updated HashMap: " + prices); ) )
Produktion
HashMap: (Pant = 150, Taske = 300, Sko = 200) Pris på sko efter moms: 220 Opdateret HashMap: (Pant = 150, Taske = 300, Sko = 220))
I ovenstående eksempel har vi oprettet en hashmap med priserne. Bemærk udtrykket,
 prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100)
Her,
- (nøgle, værdi) -> værdi + værdi * 10/100 er et lambda-udtryk. Den beregner den nye værdi af Sko og returnerer den. For at lære mere om lambda-udtrykket, besøg Java Lambda Expressions.
 - prices.computeIfPresent () knytter den nye værdi, der returneres med lambda-udtryk, til kortlægningen for Sko. Det er kun muligt, fordi sko allerede er kortlagt til en værdi i hashmap.
 
Her fungerer lambda-udtrykket som en remapping-funktion. Og det tager to parametre.
Bemærk : Vi kan ikke bruge computeIfPresent()metoden, hvis nøglen ikke findes i hashmap.
Anbefalet læsning
- HashMap-beregning () - beregner værdien for den angivne nøgle
 - HashMap computeIfAbsent () - beregner værdien, hvis den angivne nøgle ikke er tilknyttet nogen værdi
 - Java HashMap fusionere () - udfører den samme opgave som 
compute() 








