¿Cómo implementar la interfaz de mapa en Java?



Este artículo sobre Java Map Inteface lo ayudará a comprender cómo funciona Map en Java y le presenta las diferentes clases que implementan Map Interface

Uno de los temas más interesantes de Java es la interfaz Map querepresenta un mapeo entre una clave y un valor.A menudo se malinterpreta como un subtipo de interfaz en Java.Este artículo sobre la interfaz de mapa de Java lo ayudará a comprender y dominar cómo funciona un mapa en .

cómo usar stringbuffer en java

A continuación se enumeran los temas cubiertos en este artículo:





Interfaz de mapa Java

Un mapa en Java es un objeto que asigna claves a valores y está diseñado para búsquedas más rápidas. Los datos se almacenan en pares clave-valor y cada clave es única. Cada clave se asigna a un valor, de ahí el nombre del mapa. Estos pares clave-valor se denominan entradas de mapa.

Mapas en Java - Interfaz de mapa Java - Edureka



En el , java.util.Map es un que incluye firmas de métodos para la inserción, eliminación y recuperación de elementos basados ​​en una clave. Con tales métodos, es una herramienta perfecta para usar en el mapeo de asociaciones de valores clave, como los diccionarios.

Características de la interfaz del mapa

  • La interfaz del mapa no es un subtipo real de interfaz de colección, por lo tanto,sus características y comportamientos son diferentes al resto de tipos de colección.
  • Proporcionatres vistas de colección: conjunto de claves, conjunto de asignaciones de clave-valor y colección de valores.
  • AMapano puede contener claves duplicadas y cada clave se puede asignar como máximo a un valor. Algunas implementaciones permiten clave nula y valor nulo ( HashMap y LinkedHashMap ) pero algunos no ( TreeMap).
  • La interfaz del mapa no garantiza el orden de las asignaciones, sin embargo, depende de la implementación. Por ejemplo, HashMap no garantiza el orden de las asignaciones, pero TreeMap hace.
  • La clase AbstractMap proporciona una implementación esquelética de la interfaz Java Map y la mayor parte del Map concreto. clases extender la clase AbstractMap e implementar los métodos necesarios.

Ahora que tiene una idea de la interfaz de Map en Es decir, sigamos adelante y revisemos la jerarquía de Java Map.

Jerarquía del mapa de Java

Hay dos interfaces que implementan el mapa en java: mapa y SortedMap. Y las clases de implementación populares de Map en Java son HashMap, TreeMap y LinkedHashMap. La jerarquía de Java Map se da a continuación:



Antes de revisar las tres clases de implementación de la interfaz de mapa de Java mencionadas anteriormente, aquí hay algunos métodos comunes que puede encontrar cuando trabaja con el mapa.

Métodos en la interfaz de mapa de Java

Métodos

Descripción

put pública (clave de objeto, valor de objeto)Este método inserta una entrada en el mapa
públicovoid putAll (mapa del mapa)Este método inserta el mapa especificado en este mapa
objeto público eliminar (clave de objeto)Se utiliza para eliminar una entrada para la clave especificada.
public Set keySet ()Devuelve la vista Set que contiene todas las claves
public Set entrySet ()Devuelve la vista Establecer que contiene todas las claves y valores
vacío claro ()Se utiliza para restablecer el mapa.
public void putIfAbsent (clave K, valor V)Inserta el valor especificado con la clave especificada en el mapa solo si aún no está especificado
public Object get (clave de objeto)Devuelve el valor de la clave especificada
public boolean containsKey (clave de objeto)
Se utiliza para buscar la clave especificada en este mapa.

Implementaciones de Map

Hay varios que implementan el mapa de Javapero tres implementaciones principales y de propósito general sonHashMap, TreeMap y LinkedHashMap.Veamos las características y comportamientos de cada implementación con un ejemplo.

Clase HashMap

La clase más común que implementa la interfaz Java Map es HashMap. Es una implementación basada en tablas hash de la interfaz Map.Implementa todas las operaciones del mapay permite valores nulos y una clave nula. Además, esta clase no mantiene ningún orden entre sus elementos. A continuación, se muestra un programa de ejemplo que muestra la clase HashMap.

package MyPackage import java.util. * class HashMapExample {public static void main (String [] args) {Map cursos = new HashMap () // Agregue algunos cursos. cursos.put ('Cursos Java', nuevo Integer (6)) cursos.put ('Cursos en la nube', nuevo Integer (7)) cursos.put ('Cursos de programación', nuevo Integer (5)) cursos.put (' Cursos de ciencia de datos ', nuevo Integer (2)) System.out.println (' Total de cursos: '+ cursos.size ()) Establecerst = cursos.entrySet () para (Map.Entry me: st) {System.out.print (me.getKey () + ':') System.out.println (me.getValue ())} System.out. println () String searchKey = 'Cursos Java' if (cursos.containsKey (searchKey)) System.out.println ('Total encontrado' + cursos.get (searchKey) + '' + searchKey)}}

Salida

Total de cursos: 4 Cursos en la nube: 7 Cursos de programación: 5 Cursos de ciencia de datos: 2 Cursos de Java: 6 Total encontrado 6 Cursos de Java

En el programa anterior, he utilizado muchos de los métodos mencionados en la tabla. Primero, el poner() El método inserta 4 entradas en el mapa, y el Talla() El método en el siguiente paso muestra el tamaño del mapa (pares clave-valor totales). Después de eso, en el siguiente paso, el entrySet () El método devuelve todos los pares clave-valor. El programa también muestra cómo hacer uso de obtener() método para buscar un valor utilizando la clave asociada.

Pasemos a la siguiente clase que implementa la interfaz de mapa de Java: TreeMap.

Clase TreeMap

Esta implementación utiliza el árbol rojo-negro como base estructura de datos . Un TreeMap se ordena según el orden natural de sus claves, o por un Comparador proporcionado en el momento de la creación. Esta implementación no permite valores nulos pero mantieneorden en sus elementos. Aquí hay un programa de ejemplo que demuestra la clase TreeMap.

package MyPackage import java.util. * class TreeMapEx {public static void main (String [] args) {Map cursos = new TreeMap () // Agregue algunos cursos. cursos.put ('Cursos Java', nuevo Integer (3)) cursos.put ('Cursos AWS', nuevo Integer (7)) cursos.put ('Cursos de programación', nuevo Integer (8)) cursos.put (' Cursos de ciencia de datos ', nuevo Integer (2)) System.out.println (' Total de cursos: '+ cursos.size ()) Establecerst = cursos.entrySet () para (Map.Entry me: st) {System.out.print (me.getKey () + ':') System.out.println (me.getValue ())} System.out. println ()}}

Salida

Total de cursos: 4 Cursos de AWS: 7 Cursos de ciencia de datos: 2 Cursos de Java: 3 Cursos de programación: 8

En la salida, los elementos del mapa se imprimen en un estricto orden lexicográfico, que no aparece en los ejemplos anteriores de HashMap. La siguiente clase que vamos a discutir son LinkedHashMap .

LinkedHashMap (clase)

Como su nombre indica, esta implementación de la interfaz Java Map utiliza una tabla hash y una lista vinculada como estructuras de datos subyacentes. Por lo tanto, el orden de un LinkedHashMap espredecible, con el orden de inserción como orden predeterminado. Además, permite valores nulos como en HashMap. Aquí hay un programa de ejemplo que demuestra la clase TreeMap.

paquete MyPackage import java.util. * public class LinkedHashMapExample {public static void main (String a []) {LinkedHashMap cursos = nuevo LinkedHashMap () cursos.put ('Cursos Java', nuevo Integer (3)) cursos.put (' Cursos en la nube ', nuevo Integer (7)) cursos.put (' Cursos de programación ', nuevo Integer (8)) cursos.put (' Cursos de ciencia de datos ', nuevo Integer (2)) // Imprime los elementos en el mismo orden // a medida que se insertaron System.out.println (cursos) System.out.println ('Total cursos:' + cursos.size ()) System.out.println ('¿Contiene clave' Hadoop '?' + cursos.containsKey ('Hadoop')) System.out.println ('Obteniendo valor para los' Cursos de programación clave ':' + Cursos.get ('Cursos de programación')) System.out.println ('¿Está el mapa vacío?' + Cursos.isEmpty ()) System.out.println ('eliminar elemento' Cursos en la nube ':' + cursos.remove ('Cursos en la nube')) System.out.println (cursos)}}

Salida

{Cursos de Java = 3, Cursos en la nube = 7, Cursos de programación = 8, Cursos de ciencia de datos = 2} Total de cursos: 4 ¿Contiene la clave 'Hadoop'? false Obteniendo valor para la clave 'Cursos de programación': 8 ¿Está vacío el mapa? elemento de eliminación falsa 'Cursos en la nube': 7 {Cursos de Java = 3, Cursos de programación = 8, Cursos de ciencia de datos = 2}

El programa de ejemplo es bastante sencillo de entender. He utilizado algunos métodos básicos para demostrar el funcionamiento de LinkeHashMap en Java. Como dije antes, aparte de estas tres, hay muchas otras clases que implementan la interfaz Java Map.

Esto nos lleva al final de este artículo sobre 'Interfaz de mapa de Java'. He cubierto uno de los temas interesantes de Java, que es la interfaz Map en Java.

Asegúrese de practicar tanto como sea posible y revertir su experiencia.

Revisar la por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo. Estamos aquí para ayudarlo en cada paso de su viaje, para que, además de estas preguntas de la entrevista de Java, se convierta en un plan de estudios diseñado para estudiantes y profesionales que desean ser desarrolladores de Java.

Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios de esta 'interfaz de Java Map' artículo y nos pondremos en contacto contigo lo antes posible.