Método HashMap computeIfPresent(key, BiFunction) en Java con ejemplos

El método computeIfPresent(Key, BiFunction) de la clase HashMap que le permite calcular el valor de una asignación para una clave específica si la clave ya está asociada con un valor (o está asignada a un valor nulo).

  • Si la función de asignación de este método devuelve un valor nulo, se elimina la asignación.
  • Si la función de reasignación arroja una excepción, la excepción se vuelve a generar y la asignación no se modifica.
  • Durante el cálculo, no se permite la modificación de este mapa utilizando este método.
  • Sintaxis:

public Object computeIfPresent(Object key,
                  BiFunction remappingFunction)

Parámetros: Este método acepta dos parámetros:

  • key : clave con la que se va a asociar el valor.
  • remappingFunction : función para realizar la operación sobre el valor.

Devoluciones: este método devuelve un nuevo valor reasignado asociado con la clave especificada, o nulo si la asignación devuelve nulo .

Los siguientes programas ilustran el método computeIfPresent(Key, BiFunction):

Ejemplo 1: este ejemplo demuestra el caso cuando la clave no está en el hashmap.

// Java program to demonstrate
// computeIfPresent(Key, BiFunction) method.
  
import java.util.concurrent.*;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // Create a HashMap and add some values
        HashMap<String, Integer> wordCount = new HashMap<>();
        wordCount.put("Geeks", 1);
        wordCount.put("for", 2);
        wordCount.put("geeks", 3);
  
        // print HashMap details
        System.out.println("Hashmap before operation :\n "
                           + wordCount);
  
        // provide new value for keys which is present
        // using computeIfPresent method
        wordCount.computeIfPresent("Geek",
                                   (key, val) -> val + 100);
  
        // print new mapping
        System.out.println("HashMap after operation :\n "
                           + wordCount);
    }
}
Producción:

Hashmap before operation :
 {geeks=3, Geeks=1, for=2}
HashMap after operation :
 {geeks=3, Geeks=1, for=2}

Ejemplo 2: este ejemplo demuestra el caso cuando la clave está presente en el hashmap.

// Java program to demonstrate
// computeIfPresent(Key, BiFunction) method.
  
import java.util.concurrent.*;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // Create a HashMap and add some values
        HashMap<String, Integer> wordCount = new HashMap<>();
        wordCount.put("Geeks", 1);
        wordCount.put("for", 2);
        wordCount.put("geeks", 3);
  
        // print HashMap details
        System.out.println("Hashmap before operation :\n "
                           + wordCount);
  
        // provide new value for keys which is present
        // using computeIfPresent method
        wordCount.computeIfPresent("for",
                                   (key, val) -> val + 1);
  
        // print new mapping
        System.out.println("HashMap after operation :\n "
                           + wordCount);
    }
}
Producción:

Hashmap before operation :
 {geeks=3, Geeks=1, for=2}
HashMap after operation :
 {geeks=3, Geeks=1, for=3}

Referencia: https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html#computeIfPresent-K-java.util.function.BiFunction-

Publicación traducida automáticamente

Artículo escrito por piyush25pv y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *