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); } }
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); } }
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