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

Tutoriales básicos de Java

Java Control de Flujo

Java Arreglo

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 Mapa (Map)

Java Conjunto (Set)

Java Entrada/Salida (I/O)

Lector Java/Escritor

Otros temas de Java

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

Java HashMap 方法

El método compute() de HashMap de Java calcula un nuevo valor y lo asocia con la clave especificada en el mapeo.

La sintaxis del método compute() es:

hashmap.compute(K key, BiFunction remappingFunction)

Parámetros de compute()

El método compute() de compute() tiene dos parámetros:

  • key - clave asociada al valor calculado

  • remappingFunction - ParaClaveFunción para calcular el nuevo valor

注意:remappingFunction puede aceptar dos parámetros.

Valor devuelto por compute()

  • Se devuelve el nuevo valor asociado a la clave

  • Si no hay un valor asociado a la clave, se devuelve null

注意:Si el resultado de remappingFunction es null, se eliminará la clave especificadaClavedel mapeo.

Ejemplo: Insertar nuevo valor en HashMap compute()

import java.util.HashMap;
class Main {
  public static void main(String[] args) {
    //Crear HashMap
    HashMap<String, Integer> prices = new HashMap<>();
    //Insertar entradas en el HashMap
    prices.put("Shoes", 200);
    prices.put("Bag", 300);
    prices.put("Pant", 150);
    System.out.println("HashMap: " + prices);
    //con10recalcula el precio del zapato con un descuento del
    int newPrice = prices.compute("Shoes", (key, value) -> value - value * 10/100);
    System.out.println("Precio de descuento de zapatos: " + newPrice);
    //Imprimir el HashMap actualizado
    System.out.println("HashMap actualizado: " + prices);
  }
}

Resultados de salida

HashMap: {Pant=150, Bag=300, Shoes=200}
Precio de descuento de zapatos: 180
HashMap actualizado: {Pant=150, Bag=300, Shoes=180

En el ejemplo anterior, creamos un mapeo de hash llamado prices. Nota la expresión

prices.compute("Shoes", (key, value) -> value - value * 10/100)

这里,

  • (key, value) -> value - value * 10/100 -  这是一个lambda表达式。它将鞋的原价降低10%并返回。了解有关lambda表达式的更多信息,请访问Java Lambda 表达式

  • prices.compute() - 将lambda表达式返回的新值与Shoes的映射相关联。

注意:根据Java的官方文档,HashMap merge()方法比compute()方法更简单。

推荐阅读

Java HashMap 方法