Metóda computingu () Java HashMap počíta novú hodnotu a spája ju so zadaným kľúčom v hashmape.
Syntax compute()
metódy je:
hashmap.compute(K key, BiFunction remappingFunction)
Tu je hashmap objektom HashMap
triedy.
vypočítať () parametre
compute()
Metóda trvá 2 parametre:
- kľúč - kľúč, s ktorým má byť vypočítaná hodnota spojená
- remappingFunction - funkcia, ktorá počíta novú hodnotu pre zadaný kľúč
Poznámka : Funkcia remappingFunction môže mať dva argumenty. Preto sa považuje za BiFunction
.
návratová hodnota vypočítať ()
- vráti novú hodnotu spojenú s kľúčom
- vráti,
null
ak s kľúčom nie je spojená žiadna hodnota
Poznámka : Ak bude výsledkom remappingFunction null
, mapovanie pre zadaný kľúč sa odstráni.
Príklad: HashMap compute () na vloženie novej hodnoty
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ýkon
HashMap: (nohavice = 150, taška = 300, topánky = 200) Znížená cena topánok: 180 Aktualizovaná HashMap: (nohavice = 150, taška = 300, topánky = 180)
Vo vyššie uvedenom príklade sme vytvorili hashmapu s názvom ceny. Všimnite si výraz,
prices.compute("Shoes", (key, value) -> value - value * 10/100)
Tu,
- (kľúč, hodnota) -> hodnota - hodnota * 10/100 - je to výraz lambda. Znižuje starú hodnotu Topánok o 10% a vracia ju. Ak sa chcete dozvedieť viac informácií o výraze lambda, navštívte Java Lambda Expressions.
- prices.compute () - Priradí novú hodnotu vrátenú výrazom lambda k mapovaniu pre topánky.
Použili sme výraz lambda ako funkciu premapovania, ktorá zhrabáva dva parametre.
Poznámka : Podľa oficiálnej dokumentácie Java je metóda HashMap merge () jednoduchšia ako compute()
metóda.
Odporúčané čítanie
- HashMap computeIfAbsent () - vypočítava hodnotu, ak zadaný kľúč nie je namapovaný na žiadnu hodnotu
- HashMap computeIfPresent () - vypočítava hodnotu, ak je zadaný kľúč už namapovaný na hodnotu