„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,
null
jei 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