Método ConcurrentHashMap putIfAbsent() en Java

java.util.concurrent.ConcurrentHashMap.putIfAbsent() es una función integrada en Java que acepta una clave y un valor como parámetros y los asigna si la clave especificada no está asignada a ningún valor.

Sintaxis:

chm.putIfAbsent(key_elem, val_elem)

Parámetros: La función acepta dos parámetros que se describen a continuación:

  • key_elem: este parámetro especifica la clave a la que se asignará el val_elem especificado si key_elem no está asociado con ningún valor.
  • val_elem: este parámetro especifica el valor que se asignará al key_elem especificado .

Valor devuelto: la función devuelve el valor existente asignado a la clave y devuelve un valor nulo si no se ha asignado previamente ningún valor a la clave.

Excepción: la función genera NullPointerException cuando los parámetros especificados son nulos.

Los siguientes programas ilustran el método ConcurrentHashMap.putIfAbsent() :

Programa 1: Una clave existente se pasa como parámetro a la función.

// Java Program Demonstrate putIfAbsent()
// method of ConcurrentHashMap 
  
import java.util.concurrent.*;
  
class ConcurrentHashMapDemo {
    public static void main(String[] args)
    {
        ConcurrentHashMap<Integer, String> chm = 
                     new ConcurrentHashMap<Integer, String>();
  
        chm.put(100, "Geeks");
        chm.put(101, "for");
        chm.put(102, "Geeks");
        chm.put(103, "Gfg");
        chm.put(104, "GFG");
  
        // Displaying the HashMap
        System.out.println("Initial Mappings are: "
                           + chm);
  
        // Inserting non-existing key along with value
        String returned_value = (String)chm.putIfAbsent(108, "All");
  
        // Verifying the returned value
        System.out.println("Returned value is: "
                           + returned_value);
  
        // Displayin the new map
        System.out.println("New mappings are: "
                           + chm);
    }
}
Producción:

Initial Mappings are: {100=Geeks, 101=for, 102=Geeks, 103=Gfg, 104=GFG}
Returned value is: null
New mappings are: {100=Geeks, 101=for, 102=Geeks, 103=Gfg, 104=GFG, 108=All}

Programa 2: Se pasa una clave inexistente como parámetro a la función.

// Java Program Demonstrate putIfAbsent()
// method of ConcurrentHashMap 
  
import java.util.concurrent.*;
class ConcurrentHashMapDemo {
    public static void main(String[] args)
    {
        ConcurrentHashMap<Integer, String> chm = 
                          new ConcurrentHashMap<Integer, String>();
  
        chm.put(100, "Geeks");
        chm.put(101, "for");
        chm.put(102, "Geeks");
        chm.put(103, "Gfg");
        chm.put(104, "GFG");
  
        // Displaying the HashMap
        System.out.println("Initial Mappings are: "
                           + chm);
  
        // Inserting existing key along with value
        String returned_value = (String)chm.putIfAbsent(100, "All");
  
        // Verifying the returned value
        System.out.println("Returned value is: "
                           + returned_value);
  
        // Displayin the new map
        System.out.println("New mappings are: "
                           + chm);
    }
}
Producción:

Initial Mappings are: {100=Geeks, 101=for, 102=Geeks, 103=Gfg, 104=GFG}
Returned value is: Geeks
New mappings are: {100=Geeks, 101=for, 102=Geeks, 103=Gfg, 104=GFG}

Referencia : https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentHashMap.html#putIfAbsent()

Publicación traducida automáticamente

Artículo escrito por RICHIK BHATTACHARJEE 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 *