Java HashMap aprēķins ()

Java HashMap aprēķināšanas () metode aprēķina jaunu vērtību un saista to ar hashmap norādīto atslēgu.

Metodes sintakse compute()ir šāda:

 hashmap.compute(K key, BiFunction remappingFunction)

Šeit hashmap ir HashMapklases objekts .

aprēķināt () parametrus

compute()Metode ņem 2 parametri:

  • atslēga - atslēga, ar kuru jāsaista aprēķinātā vērtība
  • remappingFunction - funkcija, kas aprēķina norādītās atslēgas jauno vērtību

Piezīme . Funkcijai remappingFunk var būt divi argumenti. Tādējādi tiek uzskatīts par BiFunction.

aprēķināt () atgriešanās vērtību

  • atgriež jauno vērtību, kas saistīta ar atslēgu
  • atgriež, nullja ar atslēgu nav saistīta vērtība

Piezīme . Ja rodas remappingFunction rezultāts null, norādītās atslēgas kartēšana tiek noņemta.

Piemērs: HashMap aprēķina (), lai ievietotu jaunu vērtību

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

Rezultāts

 HashMap: (Bikses = 150, Soma = 300, Apavi = 200) Diskontēta apavu cena: 180 Atjaunināta HashMap: (Bikses = 150, Soma = 300, Apavi = 180

Iepriekš minētajā piemērā mēs esam izveidojuši hashmap ar cenām. Ievērojiet izteicienu,

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

Šeit,

  • (atslēga, vērtība) -> vērtība - vērtība * 10/100 - tā ir lambda izteiksme. Tas samazina veco apavu vērtību par 10% un to atdod. Lai uzzinātu vairāk par lambda izteiksmi, apmeklējiet Java Lambda izteiksmes.
  • prices.compute () - sasaista jauno vērtību, ko lambda izteiksme atdod, kurpes kartēšanai.

Mēs esam izmantojuši lambda izteiksmi kā atkārtotas funkcijas veidošanas funkciju, kas savāc divus parametrus.

Piezīme . Saskaņā ar Java oficiālo dokumentāciju HashMap sapludināšanas () metode ir vienkāršāka nekā compute()metode.

Ieteicamā literatūra

  • HashMap computeIfAbsent () - aprēķina vērtību, ja norādītā atslēga nav piesaistīta nevienai vērtībai
  • HashMap computeIfPresent () - aprēķina vērtību, ja norādītā atslēga jau ir kartēta uz vērtību

Interesanti raksti...