Java HashMap beräkna ()

Java HashMap compute () -metoden beräknar ett nytt värde och associerar det med den angivna nyckeln i hashmap.

Syntaxen för compute()metoden är:

 hashmap.compute(K key, BiFunction remappingFunction)

Här är hashmap ett objekt i HashMapklassen.

beräkna () parametrar

Den compute()metod tar 2 parametrar:

  • nyckel - nyckel som det beräknade värdet ska associeras med
  • remappingFunction - funktion som beräknar det nya värdet för den angivna nyckeln

Obs! RemappingFunction kan ta två argument. Därför betraktas som BiFunction.

beräkna () Returvärde

  • returnerar det nya värdet som är associerat med nyckeln
  • returnerar nullom inget värde är associerat med nyckeln

Obs : Om resultat av remappingFunction tas bort tas nullmappningen för den angivna nyckeln bort.

Exempel: HashMap beräkna () för att infoga nytt värde

 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); ) )

Produktion

 HashMap: (Pant = 150, Bag = 300, Shoes = 200) Rabatterat pris på skor: 180 Uppdaterat HashMap: (Pant = 150, Bag = 300, Shoes = 180

I exemplet ovan har vi skapat en hashmap med namnet priser. Lägg märke till uttrycket,

 prices.compute("Shoes", (key, value) -> value - value * 10/100)

Här,

  • (nyckel, värde) -> värde - värde * 10/100 - Det är ett lambdauttryck. Det minskar det gamla värdet på skor med 10% och returnerar det. För att lära dig mer om lambdauttrycket, besök Java Lambda Expressions.
  • prices.compute () - Associerar det nya värdet som returneras av lambdauttryck till kartläggningen för Shoes.

Vi har använt lambdauttryck som remapping-funktion som kräver två parametrar.

Obs! Enligt den officiella dokumentationen för Java är metoden HashMap merge () enklare än compute()metoden.

Rekommenderad läsning

  • HashMap computeIfAbsent () - beräknar värdet om den angivna nyckeln inte mappas till något värde
  • HashMap computeIfPresent () - beräknar värdet om den angivna nyckeln redan är mappad till ett värde

Intressanta artiklar...