Java HashMap compute () -menetelmä laskee uuden arvon ja yhdistää sen hashmapissa määritettyyn avaimeen.
Menetelmän syntaksi compute()
on:
hashmap.compute(K key, BiFunction remappingFunction)
Tässä hashmap on HashMap
luokan kohde.
laskea () parametrit
compute()
Menetelmä kestää 2 parametrit:
- avain - avain, johon laskettu arvo liitetään
- remappingFunction - toiminto, joka laskee määritetyn avaimen uuden arvon
Huomautus : RemappingFunction-funktiossa voi olla kaksi argumenttia. Siksi pidetään BiFunction
.
laske () palautusarvo
- palauttaa avaimeen liittyvän uuden arvon
- palauttaa,
null
jos avaimeen ei liity arvoa
Huomaa : Jos remappingFunction johtaa null
, määritetyn avaimen kartoitus poistetaan.
Esimerkki: HashMap laskee () uuden arvon lisäämiseksi
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); ) )
Tuotos
HashMap: (Housut = 150, Laukku = 300, Kengät = 200) Alennettu hinta kengistä: 180 Päivitetty HashMap: (Housut = 150, Laukku = 300, Kengät = 180
Yllä olevassa esimerkissä olemme luoneet hashmap-nimisen hinnan. Huomaa ilmaisu,
prices.compute("Shoes", (key, value) -> value - value * 10/100)
Tässä,
- (avain, arvo) -> arvo - arvo * 10/100 - Se on lambda-lauseke. Se vähentää kenkien vanhaa arvoa 10% ja palauttaa sen. Lisätietoja lambda-lausekkeesta on Java Lambda -lausekkeissa.
- prices.compute () - Liittää lambda-lausekkeen palauttaman uuden arvon kenkien kartoitukseen.
Olemme käyttäneet lambda-lauseketta uudelleenparannustoimintona, joka rakeisee kaksi parametria.
Huomaa : Javan virallisen dokumentaation mukaan HashMap merge () -menetelmä on yksinkertaisempi kuin compute()
menetelmä.
Suositeltava lukeminen
- HashMap computeIfAbsent () - laskee arvon, jos määritettyä avainta ei ole yhdistetty mihinkään arvoon
- HashMap computeIfPresent () - laskee arvon, jos määritetty avain on jo yhdistetty arvoon