English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Se la chiave dell'hashtag esiste già, il metodo computeIfPresent() di Java HashMap calcolerà un nuovo valore e lo associerà alla chiave specificata.
La sintassi del metodo computeIfPresent() è:
hashmap.computeIfPresent(K key, BiFunction remappingFunction)
computeIfPresent() ha due parametri:
key - Chiave associata al valore calcolato
remappingFunction - Per ilChiaveFunzione di calcolo del nuovo valore
Attenzione: remappingFunction può accettare due parametri.
Restituisce il nuovo valore associato alla chiave specificata
Se non esiste un valore associato alla chiave, viene restituito null
Attenzione: Se il risultato di remappingFunction è null, viene eliminato il valore associato alla chiave specificataChiavemappatura.
import java.util.HashMap; class Main { public static void main(String[] args) { // Crea una HashMap HashMap<String, Integer> prices = new HashMap<>(); // Inserisci elementi nella HashMap prices.put("Shoes", 200); prices.put("Bag", 300); prices.put("Pant", 150); System.out.println("HashMap: " + prices); // Riconta il valore delle scarpe con l'IVA del 10% int shoesPrice = prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100); System.out.println("Prezzo del paio di scarpe con l'IVA aggiunta: " + shoesPrice); // Stampa la HashMap aggiornata System.out.println("HashMap aggiornata: " + prices); } }
Risultato dell'output
HashMap: {Pant=150, Bag=300, Shoes=200} Prezzo del paio di scarpe con l'IVA aggiunta: 220 HashMap aggiornata: {Pant=150, Bag=300, Shoes=220}
Nell'esempio precedente, abbiamo creato una mappa hash chiamata prices. Nota l'espressione
prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100)
qui,
(key, value) -> value + value*10/100 - È un'espressione lambda. Calcola il nuovo valore di Shoes e lo restituisce. Per ulteriori informazioni sulle espressioni lambda, visitaEspressioni lambda Java.
prices.computeIfPresent() - Associazione del nuovo valore restituito dall'espressione lambda con la mappatura di Shoes. È l'unica possibilità, perché Shoes è già mappato al valore nella mappatura hash.
Impossibile utilizzare il metodo computeIfPresent() se la chiave non esiste nell'hashtable.
Leggi di più raccomandati
HashMap compute() - Calcola il valore della chiave specificata
HashMap computeIfAbsent() - Se la chiave non è mappata a qualsiasi valore, calcola il valore
Java HashMap merge() - Esegue la stessa attività di compute()