Metoda computingu () Java HashMap vypočítá novou hodnotu a přidruží ji k určenému klíči v hashmapě.
Syntaxe compute()
metody je:
hashmap.compute(K key, BiFunction remappingFunction)
Zde je hashmap objekt HashMap
třídy.
výpočetní () parametry
compute()
Metoda trvá 2 parametry:
- klíč - klíč, se kterým má být vypočítaná hodnota spojena
- remappingFunction - funkce, která vypočítá novou hodnotu pro zadaný klíč
Poznámka : Funkce remappingFunction může trvat dva argumenty. Z tohoto důvodu se považuje za BiFunction
.
výpočetní () návratová hodnota
- vrací novou hodnotu přidruženou ke klíči
- vrátí,
null
pokud s klíčem není spojena žádná hodnota
Poznámka : Pokud výsledky remappingFunction null
, pak se odebere mapování pro zadaný klíč .
Příklad: HashMap compute () pro vložení nové 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ýstup
HashMap: (kalhoty = 150, taška = 300, boty = 200) Zlevněná cena obuvi: 180 Aktualizovaná HashMap: (kalhoty = 150, taška = 300, boty = 180)
Ve výše uvedeném příkladu jsme vytvořili hashmapu s názvem ceny. Všimněte si výrazu,
prices.compute("Shoes", (key, value) -> value - value * 10/100)
Tady,
- (klíč, hodnota) -> hodnota - hodnota * 10/100 - je to výraz lambda. Snižuje starou hodnotu boty o 10% a vrací ji. Další informace o výrazu lambda najdete na Java Lambda Expressions.
- prices.compute () - Přidruží novou hodnotu vrácenou výrazem lambda k mapování pro boty.
Použili jsme výraz lambda jako funkci přemapování, která shrnuje dva parametry.
Poznámka : Podle oficiální dokumentace prostředí Java je metoda HashMap merge () jednodušší než compute()
metoda.
Doporučené čtení
- HashMap computeIfAbsent () - vypočítá hodnotu, pokud zadaný klíč není namapován na žádnou hodnotu
- HashMap computeIfPresent () - vypočítá hodnotu, pokud je zadaný klíč již namapován na hodnotu