Java HashMap computeIfPresent ()

Java HashMap computeIfPresent () yöntemi, yeni bir değeri hesaplar ve anahtar karma eşlemde zaten mevcutsa bunu belirtilen anahtarla ilişkilendirir.

computeIfPresent()Yöntemin sözdizimi şöyledir:

 hashmap.computeIfPresent(K key, BiFunction remappingFunction)

Burada hashmap, HashMapsınıfın bir nesnesidir .

computeIfPresent () Parametreleri

computeIfPresent()Yöntem 2 parametreleri alır:

  • anahtar - hesaplanan değerin ilişkilendirileceği anahtar
  • remappingFunction - belirtilen anahtar için yeni değeri hesaplayan işlev

Not : remappingFunction iki argüman alabilir. Bu nedenle, BiFunction olarak kabul edilir.

computeIfPresent () Dönüş Değeri

  • belirtilen anahtarla ilişkili yeni değeri döndürür
  • nullanahtarla ilişkili bir değer yoksa döndürür

Not : remappingFunction sonuçlanırsa null, belirtilen anahtar için eşleme kaldırılır.

Örnek 1: Java HashMap computeIfPresent ()

 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% VAT int shoesPrice = prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100); System.out.println("Price of Shoes after VAT: " + shoesPrice); // print updated HashMap System.out.println("Updated HashMap: " + prices); ) )

Çıktı

 HashMap: (Pantolon = 150, Çanta = 300, Ayakkabı = 200) KDV Sonrası Ayakkabı Fiyatı: 220 Güncellenmiş HashMap: (Pantolon = 150, Çanta = 300, Ayakkabı = 220))

Yukarıdaki örnekte, fiyatlar adlı bir hashmap oluşturduk. İfadeye dikkat edin,

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

Buraya,

  • (anahtar, değer) -> değer + değer * 10/100 bir lambda ifadesidir. Ayakkabıların yeni değerini hesaplar ve döndürür. Lambda ifadesi hakkında daha fazla bilgi edinmek için Java Lambda İfadeleri sayfasını ziyaret edin.
  • fiyatları.computeIfPresent () , lambda ifadesi tarafından döndürülen yeni değeri Ayakkabılar için eşlemeyle ilişkilendirir. Bu yalnızca, Shoes'un hashmap'teki bir değere zaten eşlenmiş olması nedeniyle mümkündür.

Burada lambda ifadesi yeniden eşleme işlevi olarak işlev görür. Ve iki parametre alır.

Not : computeIfPresent()Anahtar hashmap'te yoksa yöntemi kullanamayız .

Önerilen Kaynaklar

  • HashMap compute () - belirtilen anahtarın değerini hesaplar
  • HashMap computeIfAbsent () - belirtilen anahtar herhangi bir değere eşlenmemişse değeri hesaplar
  • Java HashMap merge () - ile aynı görevi gerçekleştirir compute()

Ilginç makaleler...