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, HashMap
sı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
null
anahtarla 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