Il metodo compute () di Java HashMap calcola un nuovo valore e lo associa alla chiave specificata nella hashmap.
La sintassi del compute()
metodo è:
hashmap.compute(K key, BiFunction remappingFunction)
In questo caso, hashmap è un oggetto della HashMap
classe.
parametri compute ()
Il compute()
metodo richiede 2 parametri:
- chiave - chiave a cui associare il valore calcolato
- remappingFunction - funzione che calcola il nuovo valore per la chiave specificata
Nota : la funzione remapping può richiedere due argomenti. Quindi, considerato come BiFunction
.
compute () Valore restituito
- restituisce il nuovo valore associato alla chiave
- restituisce
null
se nessun valore è associato alla chiave
Nota : se si ottiene remappingFunction null
, la mappatura per la chiave specificata viene rimossa.
Esempio: HashMap compute () per inserire un nuovo valore
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); ) )
Produzione
HashMap: (Pantaloni = 150, Borsa = 300, Scarpe = 200) Prezzo scontato delle scarpe: 180 HashMap aggiornata: (Pantaloni = 150, Borsa = 300, Scarpe = 180
Nell'esempio sopra, abbiamo creato una hashmap denominata prezzi. Notare l'espressione,
prices.compute("Shoes", (key, value) -> value - value * 10/100)
Qui,
- (chiave, valore) -> valore - valore * 10/100 - È un'espressione lambda. Riduce del 10% il vecchio valore delle scarpe e lo restituisce. Per ulteriori informazioni sull'espressione lambda, visita Java Lambda Expressions.
- prices.compute () : associa il nuovo valore restituito dall'espressione lambda alla mappatura per Shoes.
Abbiamo usato l'espressione lambda come funzione di rimappatura che raccoglie due parametri.
Nota : secondo la documentazione ufficiale di Java, il metodo HashMap merge () è più semplice del compute()
metodo.
Lettura consigliata
- HashMap computeIfAbsent () - calcola il valore se la chiave specificata non è mappata su alcun valore
- HashMap computeIfPresent () - calcola il valore se la chiave specificata è già mappata a un valore