Java HashMap-beregning ()

Java HashMap-beregningsmetoden () beregner en ny værdi og knytter den til den angivne nøgle i hashmap.

Metodens syntaks compute()er:

 hashmap.compute(K key, BiFunction remappingFunction)

Her er hashmap et objekt i HashMapklassen.

beregne () parametre

Den compute()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.

beregne () Return Value

  • returnerer den nye værdi, der er knyttet til nøglen
  • 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: HashMap-beregning () for at indsætte ny værdi

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

Produktion

 HashMap: (Pant = 150, Taske = 300, Sko = 200) Rabat på sko: 180 Opdateret HashMap: (Pant = 150, Taske = 300, Sko = 180

I ovenstående eksempel har vi oprettet en hashmap med priserne. Bemærk udtrykket,

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

Her,

  • (nøgle, værdi) -> værdi - værdi * 10/100 - Det er et lambda-udtryk. Det reducerer den gamle værdi af sko med 10% og returnerer den. For at lære mere om lambda-udtrykket, besøg Java Lambda Expressions.
  • prices.compute () - Knytter den nye værdi, der returneres af lambda-udtryk, til kortlægningen for Sko.

Vi har brugt lambda-udtryk som en remapping-funktion, der rakes to parametre.

Bemærk : Ifølge den officielle dokumentation for Java er HashMap merge () -metoden enklere end compute()metoden.

Anbefalet læsning

  • HashMap computeIfAbsent () - beregner værdien, hvis den angivne nøgle ikke er tilknyttet nogen værdi
  • HashMap computeIfPresent () - beregner værdien, hvis den angivne nøgle allerede er tilknyttet en værdi

Interessante artikler...