English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Il metodo compute() di HashMap in Java calcola un nuovo valore e lo associa al chiave specificata nella mappatura di hash.
L'indicazione sintattica del metodo compute() è:
hashmap.compute(K key, BiFunction remappingFunction)}
Il metodo compute() di hashmap ha due parametri:
key - Chiave associata al valore calcolato
remappingFunction - Per la chiave specificataChiaveFunzione di calcolo del nuovo valore
Attenzione:remappingFunction può accettare due parametri.
Restituisce il nuovo valore associato alla chiave
Se non esiste un valore associato alla chiave, viene restituito null
Attenzione:Se il risultato di remappingFunction è null, viene eliminata la chiave specificataChiavedi mappatura.
import java.util.HashMap; class Main { public static void main(String[] args) { //Crea una HashMap HashMap<String, Integer> prices = new HashMap<>(); //Inserisci una voce nella HashMap prices.put("Shoes", 200); prices.put("Bag", 300); prices.put("Pant", 150); System.out.println("HashMap: " + prices); //Ricalcola il prezzo delle scarpe con uno sconto del 10% int newPrice = prices.compute("Shoes", (key, value) -> value - value * 10/100); System.out.println("Prezzo di sconto delle scarpe: " + newPrice); //Stampa la HashMap aggiornata System.out.println("HashMap aggiornata: " + prices);
Risultato di output
HashMap: {Pant=150, Bag=300, Shoes=200} Prezzo di sconto delle scarpe: 180 HashMap aggiornata: {Pant=150, Bag=300, Shoes=180}
Nell'esempio sopra, abbiamo creato una mappa hash chiamata prices. Nota l'espressione
prices.compute("Shoes", (key, value) -> value - value * 10/100)
Ecco,}}
(key, value) -> value - value * 10/100 - Questa è un'espressione lambda. Riduce il prezzo originale del paio di scarpe del 10% e lo restituisce. Per ulteriori informazioni sulle espressioni lambda, visitareEspressioni Lambda Java.
prices.compute() - Associate il nuovo valore restituito dall'espressione lambda al mappamento di Shoes
AttenzioneSecondo la documentazione ufficiale di Java:HashMap merge()Il metodo è più semplice rispetto al metodo compute()
Raccomandazione per la lettura
HashMap computeIfAbsent() - Se la chiave specificata non è mappata a nessun valore, calcola il valore
HashMap computeIfPresent() - Se la chiave specificata è già mappata a un valore, calcola il valore