Método computeIfPresent() de Java HashMap
El método computeIfPresent() recalcula el valor de la clave especificada en hashMap, siempre que dicha clave exista en hashMap.
La sintaxis del método computeIfPresent() es:
hashmap.computeIfPresent(K key, BiFunction remappingFunction)
Nota:hashmap es un objeto de la clase HashMap.
Explicación de los parámetros:
- key - clave
- remappingFunction - función de reasignación, utilizada para recalcular el valor
Valor de retorno
Si el value correspondiente a key no existe, devuelve null; si existe, devuelve el valor recalculado mediante remappingFunction.
Ejemplo
El siguiente ejemplo demuestra el uso del método computeIfPresent():
Ejemplo
class Main {
public static void main(String[] args) {
// Crear un HashMap
HashMap<String, Integer> prices = new HashMap<>();
// Añadir asignaciones al HashMap
prices.put("Shoes", 200);
prices.put("Bag", 300);
prices.put("Pant", 150);
System.out.println("HashMap: " + prices);
// Recalcular el valor de los zapatos después de agregar un 10% de IVA
int shoesPrice = prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100);
System.out.println("Price of Shoes after VAT: " + shoesPrice);
// Imprimir el HashMap actualizado
System.out.println("Updated HashMap: " + prices);
}
}
La salida del programa anterior es:
HashMap: {Pant=150, Bag=300, Shoes=200}
Price of Shoes after VAT: 220
Updated HashMap: {Pant=150, Bag=300, Shoes=220}}
En el ejemplo anterior, creamos un HashMap llamado prices.
Observe la expresión:
prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100)
En el código, utilizamos una función anónima: la expresión lambda.(key, value) -> value + value * 10/100como función de reasignación.
Para obtener más información sobre las expresiones lambda, visita:Expresiones lambda de Java。
Otras extensiones
Java HashMap