Método Java HashMap merge()
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
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
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.
Otras extensiones
Java HashMap