English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Si la clave ya existe en la clave del hash, el método computeIfPresent() de Java HashMap calculará un nuevo valor y lo asociará con la clave especificada.
la sintaxis del método computeIfPresent() es: }}
hashmap.computeIfPresent(K key, BiFunction remappingFunction)
computeIfPresent() tiene dos parámetros:
key - clave asociada al valor calculado
remappingFunction - paraClaveFunción para calcular el nuevo valor
Nota:remappingFunction puede aceptar dos parámetros.
devuelve el nuevo valor asociado a la clave especificada
si no hay valor asociado a la clave, se devuelve null
Nota:si el resultado de remappingFunction es null, se eliminará la clave especificadaClavemappings.
import java.util.HashMap; class Main { public static void main(String[] args) { // Crear un HashMap HashMap<String, Integer> prices = new HashMap<>(); // Insertar entrada en el HashMap prices.put("Shoes", 200); prices.put("Bag", 300); prices.put("Pant", 150); System.out.println("HashMap: " + prices); //usando10vuelva a calcular el valor del zapato con el impuesto adicional int shoesPrice = prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100); System.out.println("Precio del zapato con impuestos adicionales: " + shoesPrice); // Imprimir el HashMap actualizado System.out.println("HashMap actualizado: " + prices); } }
Resultados de salida
HashMap: {Pant=150, Bag=300, Shoes=200} Precio del zapato con impuestos adicionales: 220 HashMap actualizado: {Pant=150, Bag=300, Shoes=220}}
En el ejemplo anterior, creamos un mapa de hash llamado prices. Nota la expresión
prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100)
Aquí,
(key, value) -> value + value*10/100 - Es una expresión lambda. Calcula el nuevo valor de Shoes y lo devuelve. Para obtener más información sobre las expresiones lambda, visiteJava Lambda 表达式.
prices.computeIfPresent() - Asociar el nuevo valor devuelto por la expresión lambda con el mapeo de Shoes. Esto es posible solo porque Shoes ya está mapeado al valor en el mapeo de hash.
No se puede usar el método computeIfPresent() si no existe la clave en la tabla de hash.
Recomendado para leer
HashMap compute() - Calcular el valor de la clave especificada
HashMap computeIfAbsent() - Si la clave especificada no está mapeada a ningún valor, se calculará el valor
Java HashMap merge() - Ejecuta la misma tarea que compute()