Método Java HashMap merge()

Java HashMap Java HashMap

El método merge() primero verifica si la clave especificada existe; si no existe, agrega el par clave-valor al hashMap.

La sintaxis del método merge() es:

hashmap.merge(key, value, remappingFunction)

Nota:hashmap es un objeto de la clase HashMap.

Descripción de parámetros:

  • key - clave
  • value - valor
  • remappingFunction - función de reasignación, utilizada para recalcular el valor

Valor de retorno

Si el valor correspondiente a la clave no existe, se devuelve ese valor; si existe, se devuelve el valor recalculado mediante remappingFunction.

Ejemplo

El siguiente ejemplo demuestra el uso del método merge():

Ejemplo

import java.util.HashMap;

class Main {
    public static void main(String[] args) {
    // Crear un HashMap
    HashMap<String, Integer> prices = new HashMap<>();

    // Insertar una asignación en el HashMap
    prices.put("Shoes", 200);
    prices.put("Bag", 300);
    prices.put("Pant", 150);
    System.out.println("HashMap: " + prices);

    int returnedValue = prices.merge("Shirt", 100, (oldValue, newValue) -> oldValue + newValue);
    System.out.println("Price of Shirt: " + returnedValue);

    // Imprimir el HashMap actualizado
    System.out.println("Updated HashMap: " + prices);
    }
}

La ejecución del programa anterior produce el siguiente resultado:

HashMap: {Pant=150, Bag=300, Shoes=200}
Price of Shirt: 100
Updated HashMap: {Pant=150, Shirt=100, Bag=300, Shoes=200}

En el ejemplo anterior, creamos un HashMap llamado prices.

Tenga en cuenta la expresión:

prices.merge("Shirt", 100, (oldValue, newValue) -> oldValue + newValue)

En el código, usamos una función anónima: expresión lambda (oldValue, newValue) -> oldValue + newValue) como función de reasignación.

Debido a que la clave Shirt no está en prices, el método merge() inserta la asignación Shirt=100 en prices, y el resultado de la función de reasignación se ignora.

Para obtener más información sobre las expresiones lambda, visiteExpresiones Lambda de Java。

El método merge() de HashMap inserta un elemento de asignación con clave duplicada:

Ejemplo

import java.util.HashMap;

class Main {
    public static void main(String[] args) {
        // Crear un HashMap
        HashMap<String, String> countries = new HashMap<>();

        // Insertar elementos de asignación en el HashMap
        countries.put("Washington", "America");
        countries.put("Canberra", "Australia");
        countries.put("Madrid", "Spain");
        System.out.println("HashMap: " + countries);

        // Fusionar la asignación con la clave Washington
        String returnedValue = countries.merge("Washington", "USA", (oldValue, newValue) -> oldValue + "/" + newValue);
        System.out.println("Washington: " + returnedValue);

        // Imprimir el HashMap actualizado
        System.out.println("Updated HashMap: " + countries);
    }
}

La ejecución del programa anterior produce el siguiente resultado:

HashMap: {Madrid=Spain, Canberra=Australia, Washington=America}
Washington: America/USA
Updated HashMap: {Madrid=Spain, Canberra=Australia, Washington=America/USA},  

En el ejemplo anterior, creamos un HashMap llamado countries.

Tenga en cuenta la expresión:

countries.merge("Washington", "USA", (oldValue, newValue) -> oldValue + "/" + newValue)

Aquí, usamos la expresión lambda(oldValue, newValue) -> oldValue + "/" + newValue)como función de reasignación.

Debido a que la clave washington ya existe en countries, el valor anterior se reemplaza por el valor devuelto por la función de reasignación. Por lo tanto, la asignación de Washington contiene America/USA.

Java HashMap Java HashMap

Otras extensiones