Método de fábrica para crear un mapa inmutable en Java 9

En Java 9, se agregan algunas características en el lenguaje Java y el método de fábrica para el mapa inmutable es una de ellas.
Características del mapa inmutable:

  • Como sugiere el nombre, estos mapas son inmutables.
  • Si se intenta agregar, eliminar y actualizar elementos en el mapa, tendremos UnsupportedOperationException.
  • El mapa inmutable tampoco permite elementos nulos.
  • Si se intenta crear un mapa inmutable con un elemento nulo, tendremos NullPointerException. Si se intenta agregar un elemento nulo en el mapa, tendremos UnsupportedOperationException.

Creando un mapa inmutable en Java 8

Para crear un mapa inmutable en Java 8, usamos el método java.util.unmodifiableMap (Mapa de mapa). unmodifiableMap (mapa de mapa): este método devuelve una vista no modificable del mapa especificado. Este método permite que los módulos brinden a los usuarios acceso de «solo lectura» a los mapas internos.

Syntax: public static  Map unmodifiableMap(Map map)
Returns: an unmodifiable view of the specified map.
Exception: NA

Código Java para mapa inmutable vacío y no vacío:

// Java code illustrating immutable map in java 8
import java.util.*;
class ImmutableListDemo
{
    public static void main(String args[])
    {
        // empty map
        Map<Integer, String> empty = new HashMap();
        Map immutable1 = Collections.unmodifiableMap(empty);
           
        // non-empty map
        Map<Integer, String> non_empty = new HashMap();
        non_empty.put(1, "ide");
           
        Map immutable2 = Collections.unmodifiableMap(non_empty);
           
        // adding key-value pair in these immutable map
        immutable1.put(1,"gfg");
        immutable2.put(2,"quiz");
              
    }
}

El código anterior generará una excepción, porque estamos tratando de agregar un par clave-valor en un mapa inmutable.

Runtime Error : Exception in thread "main" 
java.lang.UnsupportedOperationException
at java.util.Collections$UnmodifiableMap.put(Collections.java:1457)
at ImmutableListDemo.main(File.java:17)

Creando un mapa inmutable en java 9

Para crear un mapa inmutable en Java 9, usamos los métodos of() y ofEntries() .
Código Java para crear un mapa inmutable en Java 9:

// Java code illustrating of() method
import java.util.*;
class ImmutableListDemo
{
    public static void main(String args[])
    {
        // empty immutable map
        Map<Integer, String> immutable1 = Map.of();
           
        // non-empty immutable map
        Map<Integer, String> immutable2 = Map.of(1, "ide",2, "quiz");
          
        // adding key-value pair in these immutable map
        immutable1.put(1,"gfg");
        immutable2.put(3,"contribute");
              
    }
}

Después de ejecutar el código anterior, tendremos UnsupportedOperationException.
Código Java para crear un mapa inmutable usando el método Map.ofEntries() en Java 9:

// Java code illustrating ofEntries method
import java.util.*;
import java.util.Map.Entry;
class ImmutableListDemo
{
    public static void main(String args[])
    {
        // empty immutable map
        Map<Integer, String> immutable = Map.ofEntries();
           
        // non-empty immutable map
        Map.Entry<Integer, String> entry1 = Map.entry(1, "gfg");
        Map.Entry<Integer, String> entry2 = Map.entry(2, "contribute");
           
        Map<Integer, String> immubatleMap = Map.ofEntries(entry1,
                         entry2);     
    }
}

Por lo tanto, of() y ofEntries() son métodos utilizados para crear un mapa inmutable en Java 9.

Este artículo es una contribución de Abhishek Verma . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

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