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 HashMap
klassen.
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
null
om inget värde är associerat med nyckeln
Obs : Om resultat av remappingFunction tas bort tas null
mappningen 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