English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Control de flujo de Java

Java array

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Manejo de excepciones en Java

Java lista (List)

Java cola (Queue)

Java conjuntos (Map)

Java conjuntos (Set)

Java entrada/salida (I/O)

Reader de Java/Writer

Otras temáticas de Java

Uso y ejemplo del método computeIfPresent() de Java HashMap

Métodos de HashMap de Java

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)

parámetros de computeIfPresent()

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.

devolución de valor de computeIfPresent()

  • 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.

Ejemplo1:método computeIfPresent() de Java HashMap

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

Métodos de HashMap de Java