„Java HashMap“ metodas „computeIfAbsent ()“ apskaičiuoja naują reikšmę ir susieja ją su nurodytu raktu, jei raktas nėra susietas su jokia „hashmap“ reikšme.
computeIfAbsent()
Metodo sintaksė yra tokia:
hashmap.computeIfAbsent(K key, Function remappingFunction)
Čia hashmap yra klasės objektas HashMap
.
Parametrai „computeIfAbsent ()“
computeIfAbsent()
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 : pakartotinio keitimo funkcija negali būti dviejų argumentų.
computeIfAbsent () grąžinimo vertė
- grąžina naują arba seną reikšmę, susietą su nurodytu raktu
- grąžinama,
null
jei nėra jokios vertės, susijusios su raktu
Pastaba : Jei gaunama „remappingFunction“ funkcija null
, nurodyto rakto susiejimas pašalinamas.
1 pavyzdys: Java HashMap computeIfAbsent ()
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); // compute the value of Shirt int shirtPrice = prices.computeIfAbsent("Shirt", key -> 280); System.out.println("Price of Shirt: " + shirtPrice); // print updated HashMap System.out.println("Updated HashMap: " + prices); ) )
Rezultatas
„HashMap“: (kelnaitės = 150, krepšys = 300, batai = 200) marškinėlių kaina: 280 atnaujinta „HashMap“: (kelnaitės = 150, marškinėliai = 280, krepšys = 300, batai = 200)
Ankstesniame pavyzdyje mes sukūrėme hashmap pavadinimu kainos. Atkreipkite dėmesį į išraišką,
prices.computeIfAbsent("Shirt", key -> 280)
Čia
- raktas -> 280 yra lambda išraiška. Ji grąžina vertę 280. Norėdami sužinoti daugiau apie lambda išraišką, apsilankykite „Java Lambda Expressions“.
- prices.computeIfAbsent () susieja naują reikšmę, kurią grąžina lambda išraiška, į marškinių atvaizdavimą. Tai įmanoma tik todėl, kad marškinėliai dar nėra priskirti jokiai reikšmei hashmap.
2 pavyzdys: computeIfAbsent (), jei raktas jau yra
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", 180); prices.put("Bag", 300); prices.put("Pant", 150); System.out.println("HashMap: " + prices); // mapping for Shoes is already present // new value for Shoes is not computed int shoePrice = prices.computeIfAbsent("Shoes", (key) -> 280); System.out.println("Price of Shoes: " + shoePrice); // print updated HashMap System.out.println("Updated HashMap: " + prices); ) )
Rezultatas
HashMap: (Kelnaitės = 150, Krepšys = 300, Batai = 180) Batų kaina: 180 Atnaujinta „HashMap“: (Kelnaitės = 150, Krepšys = 300, Batai = 180)
Ankstesniame pavyzdyje batų atvaizdavimas jau yra hashmap. Taigi computeIfAbsent()
metodas neapskaičiuoja naujos „Shoes“ vertės.
Rekomenduojamas skaitymas
- HashMap compute () - apskaičiuoja nurodyto rakto vertę
- „HashMap“ computeIfPresent () - apskaičiuoja vertę, jei nurodytas raktas jau yra susietas su verte
- Java HashMap sulieti () - atlieka tą pačią užduotį kaip ir
compute()