Java HashMapi arvutamine ()

Java HashMapi arvutamise () meetod arvutab uue väärtuse ja seob selle hashmapis määratletud võtmega.

Meetodi süntaks compute()on:

 hashmap.compute(K key, BiFunction remappingFunction)

Siin on hashmap HashMapklassi objekt .

arvuta () parameetrid

compute()Meetod võtab 2 parameters:

  • võti - võti, millega arvutatav väärtus seostatakse
  • remappingFunction - funktsioon, mis arvutab määratud võtme uue väärtuse

Märkus . RemappingFunction võib võtta kaks argumenti. Seega peetakse seda BiFunction.

arvuta () tagastusväärtus

  • tagastab võtmega seotud uue väärtuse
  • tagastatakse, nullkui võtmega pole seotud väärtust

Märkus . Kui tulemuseks on funktsiooni remappingFunction null, eemaldatakse määratud võtme vastendamine .

Näide: HashMap arvutab () uue väärtuse sisestamiseks

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

Väljund

 HashMap: (Püksid = 150, Kott = 300, Kingad = 200) Soodushinnaga kingad: 180 Uuendatud HashMap: (Pant = 150, kott = 300, kingad = 180

Ülaltoodud näites oleme loonud hashmapi nimega hinnad. Pange tähele väljendit

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

Siin,

  • (võti, väärtus) -> väärtus - väärtus * 10/100 - see on lambda avaldis. See vähendab Kingade vana väärtust 10% ja tagastab selle. Lambda väljendi kohta lisateabe saamiseks külastage Java Lambda väljendeid.
  • prices.compute () - seostab uue väärtuse, mille lambda avaldis tagastab, kingade kaardistamisele.

Oleme lambda väljendit kasutanud ümberarvestusfunktsioonina, mis rüüstab kahte parameetrit.

Märkus : Java ametliku dokumentatsiooni kohaselt on meetod HashMap merge () meetodist lihtsam compute().

Soovitatav lugemine

  • HashMap computeIfAbsent () - arvutab väärtuse, kui määratud võti pole ühegi väärtusega vastendatud
  • HashMap computeIfPresent () - arvutab väärtuse, kui määratud võti on juba väärtusega kaardistatud

Huvitavad Artiklid...