A Java HashMap computeIfAbsent () metódus új értéket számol ki és társítja a megadott kulccsal, ha a kulcs nincs társítva a hashmap egyik értékéhez sem.
A computeIfAbsent()módszer szintaxisa :
 hashmap.computeIfAbsent(K key, Function remappingFunction)
Itt a hashmap az HashMaposztály objektuma .
computeIfAbsent () paraméterek
A computeIfAbsent()módszer 2 paramétert vesz fel:
- kulcs - kulcs, amelyhez a számított értéket társítani kell
 - remappingFunction - függvény, amely kiszámítja a megadott kulcs új értékét
 
Megjegyzés : Az újratervezési függvény nem tartalmazhat két argumentumot.
computeIfAbsent () visszatérési érték
- a megadott kulccsal társított új vagy régi értéket adja vissza
 - visszatér, 
nullha a kulcshoz nincs társítva érték 
Megjegyzés : Ha a remappingFunction eredményt ad null, akkor a megadott kulcs hozzárendelése eltávolításra kerül.
1. példa: 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); ) )
Kimenet
HashMap: (nadrág = 150, táska = 300, cipő = 200) az ing ára: 280 frissített HashMap: (nadrág = 150, ing = 280, táska = 300, cipő = 200)
A fenti példában létrehoztunk egy hashmap nevű árakat. Figyelje meg a kifejezést,
 prices.computeIfAbsent("Shirt", key -> 280)
Itt,
- kulcs -> 280 egy lambda kifejezés. Visszaadja a 280 értéket. Ha többet szeretne megtudni a lambda kifejezésről, keresse fel a Java Lambda kifejezéseket.
 - Az árak.computeIfAbsent () a lambda kifejezéssel visszaküldött új értéket társítja a Póló leképezéséhez. Csak azért lehetséges, mert a pólót már nem rendelték hozzá a hashmap egyik értékéhez sem.
 
2. példa: computeIfAbsent (), ha a kulcs már megvan
 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); ) )
Kimenet
HashMap: (nadrág = 150, táska = 300, cipő = 180) a cipő ára: 180 frissített HashMap: (nadrág = 150, táska = 300, cipő = 180)
A fenti példában a Cipők leképezése már szerepel a hashmap-ban. Ezért a computeIfAbsent()módszer nem számítja ki a cipők új értékét.
Ajánlott olvasmány
- HashMap compute () - kiszámítja a megadott kulcs értékét
 - HashMap computeIfPresent () - kiszámítja az értéket, ha a megadott kulcs már hozzárendelve egy értékhez
 - Java HashMap merge () - ugyanazt a feladatot hajtja végre, mint 
compute() 








