Método HashMap putIfAbsent (clave, valor) en Java con ejemplos

El método putIfAbsent (clave K, valor V) de la clase HashMap se usa para asignar la clave especificada con el valor especificado, solo si no existe dicha clave (o está asignada a nulo) en esta instancia de HashMap.

Sintaxis:  

public V putIfAbsent(K key, V value)

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

  • clave: que es la clave con la que se debe mapear el valor proporcionado.
  • valor: que es el valor que debe asociarse con la clave proporcionada, si está ausente.

Valor devuelto: 

Este método devuelve un valor nulo (si no hubo una asignación con la clave proporcionada antes o si se asignó a un valor nulo) o el valor actual asociado con la clave proporcionada.

Excepciones: 

Este método puede arrojar las siguientes excepciones:  

  • NullPointerException: si la clave o el valor especificado es nulo y este mapa no admite el valor nulo.
  • IllegalArgumentException: si la clave o el valor especificado impide que se almacene en el mapa.
  • UnsupportedOperationException : si la operación de colocación no es compatible con este mapa (opcional)
  • ClassCastException : si la clave o el valor es de un tipo inapropiado para este mapa (opcional)

Programa 1:  

Java

// Java program to demonstrate
// putIfAbsent(Key, value) method.
 
import java.util.HashMap;
 
public class TestClass {
 
    // Main method
    public static void main(String[] args)
    {
 
        // create a HashMap and add some values
        HashMap<String, Integer> map = new HashMap<>();
        map.put("a", 10000);
        map.put("b", 55000);
        map.put("c", 44300);
        map.put("e", 53200);
 
        // print original map
        System.out.println("HashMap:\n " + map.toString());
 
        // put a new value which is not mapped
        // before in map
        map.putIfAbsent("d", 77633);
 
        System.out.println("New HashMap:\n " + map);
 
        // try to put a new value with existing key
        // before in map
        map.putIfAbsent("d", 55555);
 
        // print newly mapped map
        System.out.println("Unchanged HashMap:\n " + map);
    }
}
Producción

HashMap:
 {a=10000, b=55000, c=44300, e=53200}
New HashMap:
 {a=10000, b=55000, c=44300, d=77633, e=53200}
Unchanged HashMap:
 {a=10000, b=55000, c=44300, d=77633, e=53200}

Programa 2: 

Java

// Java program to demonstrate
// putIfAbsent(Key, value) method.
 
import java.util.*;
 
public class GFG {
 
    // Main method
    public static void main(String[] args)
    {
 
        // create a HashMap and add some values
        HashMap<String, Integer> map = new HashMap<>();
        map.put("a", 10000);
        map.put("b", 55000);
        map.put("c", 44300);
        map.put("e", null);
 
        // print original map
        System.out.println("HashMap:\n " + map.toString());
 
        // put a new value which is not mapped
        // before in map and store the returned
        // value in r1
        Integer r1 = map.putIfAbsent("d", 77633);
 
        // put a new value for key 'e' which is mapped
        // with a null value, and store the returned
        // value in r2
        Integer r2 = map.putIfAbsent("e", 77633);
 
        // print the value of r1
        System.out.println("Value of r1:\n " + r1);
 
        // print the value of r2
        System.out.println("Value of r2:\n " + r2);
 
        // print newly mapped map
        System.out.println("New HashMap:\n " + map);
    }
}
Producción

HashMap:
 {a=10000, b=55000, c=44300, e=null}
Value of r1:
 null
Value of r2:
 null
New HashMap:
 {a=10000, b=55000, c=44300, d=77633, e=77633}

Referencia: https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html#putIfAbsent-KV-
 

Publicación traducida automáticamente

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