Diferencia entre hashmap y map en Java

Mohammad Irfan 12 octubre 2023
  1. La interfaz Map en Java
  2. La clase HashMap en Java
  3. Utilice una referencia de Map para contener objetos en Java
  4. Utilice una referencia de Map para contener objetos en Java
Diferencia entre hashmap y map en Java

Este tutorial presenta las principales diferencias entre Map y HashMap en Java.

En Java, Map es una interfaz utilizada para almacenar datos en un par clave-valor, mientras que HashMap es la clase de implementación de la interfaz Map. Java tiene varias clases (TreeHashMap, LinkedHashMap) que implementan la interfaz Map para almacenar datos en un par clave-valor. Veamos algunos ejemplos.

La interfaz Map en Java

La interfaz Map por sí sola no se puede utilizar para almacenar datos, pero podemos crear un objeto de sus clases de implementación y luego usar la referencia Map para contener el objeto. Aquí, usamos la clase HashMap para almacenar datos y la interfaz Map para contener la referencia de esta clase. Vea el ejemplo a continuación.

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

public class SimpleTesting {
  public static void main(String[] args) {
    Map<String, Integer> map = new HashMap<>();
    map.put("One", 1);
    map.put("Two", 2);
    map.put("Three", 3);
    System.out.println(map);
  }
}

Producción :

{One=1, Two=2, Three=3}

La clase HashMap en Java

HashMap es una clase de implementación de la interfaz Map. Entonces, podemos usarlo para crear una colección de pares clave-valor. Vea el ejemplo a continuación.

import java.util.HashMap;

public class SimpleTesting {
  public static void main(String[] args) {
    HashMap<String, Integer> map = new HashMap<>();
    map.put("One", 1);
    map.put("Two", 2);
    map.put("Three", 3);
    System.out.println(map);
  }
}

Producción :

{One=1, Two=2, Three=3}

Utilice una referencia de Map para contener objetos en Java

Dado que Map es una interfaz, podemos usarlo para contener la referencia de sus clases de implementación como HashMap, TreeMap, etc. Podemos guardar un objeto TreeMap o HashMap en la interfaz de Map. Vea el ejemplo a continuación.

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

public class SimpleTesting {
  public static void main(String[] args) {
    Map<String, Integer> map = new HashMap<>();
    map.put("One", 1);
    map.put("Two", 2);
    map.put("Three", 3);
    System.out.println(map);
    Map<String, Integer> tmap = new TreeMap<>(map);
    System.out.println(tmap);
  }
}

Producción :

{One=1, Two=2, Three=3}
{One=1, Three=3, Two=2}

Utilice una referencia de Map para contener objetos en Java

Es un ejemplo importante del uso de la referencia Map mientras se trabaja con sus clases de implementación. Mira, tenemos un método que toma un objeto Map como argumento. Entonces, en el momento de la llamada, podemos pasar el objeto de cualquier clase como HashMap o HashTable. Vea el ejemplo a continuación.

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;

public class SimpleTesting {
  static void printMap(Map<String, Integer> map) {
    for (String key : map.keySet()) {
      System.out.println(key + ":" + map.get(key));
    }
  }
  public static void main(String[] args) {
    HashMap<String, Integer> hashmap = new HashMap<>();
    hashmap.put("One", 1);
    hashmap.put("Two", 2);
    hashmap.put("Three", 3);
    printMap(hashmap);
    TreeMap<String, Integer> tmap = new TreeMap<>(hashmap);
    printMap(tmap);
    LinkedHashMap<String, Integer> lmap = new LinkedHashMap<>(hashmap);
    printMap(lmap);
  }
}

Ejecute el código como se muestra a continuación.

Java SimpleTesting 10 20

Producción :

10
20

Artículo relacionado - Java Map

Artículo relacionado - Java HashMap