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:
- Todas las claves presentes en el
Map
son únicas. - Puede haber una clave única correspondiente a uno o más valores.
- 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:
HashMap
LinkedHashMap
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 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