Diccionario en Java

Rashmi Patidar 12 octubre 2023
Diccionario en Java

En lenguaje Java, el Diccionario se representa mediante una estructura de datos llamada interfaz Map. La estructura de datos Map se utiliza para presentar datos en pares clave-valor. El Map es una interfaz que realiza un seguimiento de todas las claves y los valores correspondientes. Un usuario puede recuperar el valor basándose en una clave única. La interfaz Map tiene las siguientes propiedades:

  1. Todas las claves presentes en el Map son únicas.
  2. Puede haber una clave única correspondiente a uno o más valores.
  3. Las claves son las entidades que no son nulas.

A continuación se muestra el bloque de código que demuestra el uso de un diccionario o Map en lenguaje Java.

import java.util.HashMap;
import java.util.Map;

public class Dictionary {
  public static void main(String[] args) {
    System.out.println("Dictionary in Java");
    System.out.println("Using HashMap ");
    Map<String, String> map = new HashMap<>();
    map.put("1", "Letters with alphabetical Order with key A");
    map.put("2", "Letters with alphabetical Order with key B");
    System.out.println(map.get("2"));
  }
}

El Map es una interfaz presente por separado, además de la jerarquía del marco de la Collection.

El Map está presente en el paquete java.util y muestra cómo se asigna una clave a los valores. Puede haber varias implementaciones en un mapa, que son:

  1. HashMap
  2. LinkedHashMap
  3. Hashtable

El uso de cada uno puede variar según las necesidades de implementación de los usuarios.

En el fragmento de código anterior, se utiliza la implementación de HashMap. Es la clase predeterminada y ampliamente utilizada en Java Language. La diferencia entre los tres tipos se define a continuación.

HashMap se introduce en la versión Java 1.2, mientras que Hashtable es una clase heredada. Es seguro para subprocesos y, por lo tanto, se permiten operaciones simultáneas entre varios subprocesos, lo que mantiene la coherencia en el código. Pero el HashMap no es seguro para subprocesos y no permite simultaneidad.

Debido a la naturaleza segura para subprocesos de HashMap, tiene un rendimiento más rápido que el Hashtable. Además, HashMap es rápido en fallas y arroja ConcurrencyException cuando su instancia es manipulada por varios subprocesos a la vez. En contraste, Hashtable parece a prueba de fallas. El caso de uso de LinkedHashMap reside cuando un usuario desea guardar la orden de inserción.

La instancia de Map se crea utilizando la clase HashMap en el bloque de código de arriba. Las operaciones como get y put se utilizan para almacenar y recuperar los valores específicos de la instancia. El método put toma dos parámetros que son la clave y su valor.

Internamente, la clave se evalúa primero si está presente en el objeto de mapa usando la función containsKey(). Si se evalúa como verdadero, entonces el valor actual de la clave se reemplaza con el nuevo valor. El método arroja UnsupportedOperationException si la operación definida no es compatible con el Map con la clave dada.

La ClassCastException si la clave o el valor evita que la clave se almacene, la NullPointerException si la clave o el valor especificados es null y el Map no permite claves o valores null. IllegalArgumentException si alguna propiedad de la clave o valor impide que se almacene en el Map.

Una vez que la clave se inserta en el Map, se recupera mediante la función get. La función get toma un solo parámetro que es la clave única. Lanza ClassCastException y NullPointerException cuando la clave es inapropiada o si la clave especificada es null.

A continuación se muestra la salida de la interfaz del mapa utilizando la clase HashMap.

Dictionary in Java Using HashMap Letters with alphabetical Order with key B
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn