„Java HashMap“ skaičiavimas ()

„Java HashMap“ skaičiavimo () metodas apskaičiuoja naują vertę ir susieja ją su nurodytu raktu hashmap.

compute()Metodo sintaksė yra tokia:

 hashmap.compute(K key, BiFunction remappingFunction)

Čia hashmap yra klasės objektas HashMap.

apskaičiuoti () parametrus

compute()Metodas trunka 2 parametrus:

  • raktas - raktas, su kuriuo turi būti susieta apskaičiuota vertė
  • remappingFunction - funkcija, kuri apskaičiuoja naują nurodyto rakto vertę

Pastaba : „RemappingFunction“ gali turėti du argumentus. Vadinasi, laikoma BiFunction.

compute () Return Value

  • grąžina naują reikšmę, susietą su raktu
  • grąžinama, nulljei nėra jokios vertės, susijusios su raktu

Pastaba : Jei gaunama „remappingFunction“ funkcija null, nurodyto rakto susiejimas pašalinamas.

Pavyzdys: „HashMap“ apskaičiuokite () norėdami įterpti naują vertę

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

Rezultatas

 „HashMap“: (kelnaitės = 150, krepšys = 300, batai = 200) diskontuota avalynės kaina: 180 atnaujinta „HashMap“: (kelnaitės = 150, krepšys = 300, batai = 180

Ankstesniame pavyzdyje mes sukūrėme hashmap pavadinimu kainos. Atkreipkite dėmesį į išraišką,

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

Čia

  • (raktas, reikšmė) -> vertė - reikšmė * 10/100 - Tai lambda išraiška. Tai sumažina senąją „Shoes“ vertę 10% ir ją grąžina. Norėdami sužinoti daugiau apie lambda išraišką, apsilankykite „Java Lambda Expressions“.
  • prices.compute () - susieja naują reikšmę, kurią grąžina lambda išraiška, prie batų atvaizdavimo.

Mes naudojome lambda išraišką kaip pakartotinio nustatymo funkciją, kuri sugriebia du parametrus.

Pastaba : Remiantis oficialia „Java“ dokumentacija, „HashMap Merge ()“ metodas yra paprastesnis nei compute()metodas.

Rekomenduojamas skaitymas

  • „HashMap“ computeIfAbsent () - apskaičiuoja vertę, jei nurodytas raktas nėra susietas su jokia verte
  • „HashMap“ computeIfPresent () - apskaičiuoja vertę, jei nurodytas raktas jau yra susietas su verte

Įdomios straipsniai...