Výpočet Java HashMap ()

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 HashMaptří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í, nullpokud 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

Zajímavé články...