Výpočet Java HashMap ()

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 HashMaptriedy.

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, nullak 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

Zaujímavé články...