Java HashMap hesaplaması ()

Java HashMap compute () yöntemi yeni bir değer hesaplar ve bunu karma haritadaki belirtilen anahtarla ilişkilendirir.

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

 hashmap.compute(K key, BiFunction remappingFunction)

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

compute () Parametreler

compute()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, olarak kabul edilir BiFunction.

compute () Dönüş Değeri

  • 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: Yeni Değer Eklemek için HashMap compute ()

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

Çıktı

 HashMap: (Pantolon = 150, Çanta = 300, Ayakkabı = 200) İndirimli Ayakkabı Fiyatı: 180 Güncellenmiş HashMap: (Pantolon = 150, Çanta = 300, Ayakkabı = 180

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

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

Buraya,

  • (anahtar, değer) -> değer - değer * 10/100 - Lambda ifadesidir. Ayakkabıların eski değerini % 10 azaltır ve geri verir. Lambda ifadesi hakkında daha fazla bilgi edinmek için Java Lambda İfadeleri sayfasını ziyaret edin.
  • fiyatları.compute () - lambda ifadesi tarafından döndürülen yeni değeri Ayakkabılar için eşlemeyle ilişkilendirir.

Lambda ifadesini iki parametreyi tarayan yeniden eşleme işlevi olarak kullandık.

Not : Java'nın resmi belgelerine göre HashMap merge () yöntemi, yöntemden daha basittir compute().

Önerilen Kaynaklar

  • HashMap computeIfAbsent () - belirtilen anahtar herhangi bir değere eşlenmemişse değeri hesaplar
  • HashMap computeIfPresent () - belirtilen anahtar zaten bir değere eşlenmişse değeri hesaplar

Ilginç makaleler...