En este artículo discutiremos las diferencias entre las clases HashSet y HashMap.

HashSet vs HashMap

Diferencias:

HashSet HashMap
La clase HashSet implementa la interfaz Set La clase HashMap implementa la interfaz Map
En HashSet almacenamos objetos (elementos o valores) por ejemplo. Si tenemos un HashSet de elementos de cadena, podría representar un conjunto de elementos HashSet: {“Hola”, “Hola”, “Adiós”, “Ejecutar”} HashMap se utiliza para almacenar pares de clave y valor. En resumen, conserva el mapeo de claves y valores (la clase HashMap es aproximadamente equivalente a Hashtable, excepto que no está sincronizada y permite valores nulos). Así es como podría representar elementos HashMap si tiene una clave entera y un valor de tipo Cadena: por ejemplo. {1 -> “Hola”, 2 -> “Hola”, 3 -> “Adiós”, 4 -> “Ejecutar”}
HashSet no permite elementos duplicados, lo que significa que los valores duplicados no se pueden almacenar en HashSet. HashMap no permite claves duplicadas, sin embargo, permite valores duplicados.
HashSet le permite tener un único valor nulo. HashMap permite una única clave nula y cualquier número de valores nulos.

Similitudes:

1) Tanto HashMap como HashSet no están sincronizados, lo que significa que no son adecuados para operaciones unitarias seguras para subprocesos a menos que estén sincronizados explícitamente. Así es como puede sincronizarlos explícitamente:
HashSet:

Set s = Collections.synchronizedSet(new HashSet(...));

HashMap:

 Map m = Collections.synchronizedMap(new HashMap(...));

2) Ambas clases no garantizan que el orden de sus elementos permanecerá constante a lo largo del tiempo.

3) Si observa el código fuente de HashSet, puede encontrar que es compatible con un HashMap. Entonces, básicamente usa un HashMap internamente para todas sus operaciones.

4) Ambos proporcionan un rendimiento de tiempo constante para operaciones básicas como agregar, eliminar elementos, etc.

leer  Agregar un elemento a LinkedList usando el método add (E e) - Java

Ejemplo de HashSet

import java.util.HashSet;
class HashSetDemo{ 
  public static void main(String[] args) {
     // Create a HashSet
     HashSet<String> hset = new HashSet<String>();
 
     //add elements to HashSet
     hset.add("AA");
     hset.add("BB");
     hset.add("CC");
     hset.add("DD");
 
     // Displaying HashSet elements
     System.out.println("HashSet contains: ");
     for(String temp : hset){
        System.out.println(temp);
     }
  }
}

Producción:

HashSet contains: 
AA
BB
CC
DD

Ejemplo de HashMap

import java.util.HashMap;
class HashMapDemo{ 
  public static void main(String[] args) {
     // Create a HashMap
     HashMap<Integer, String> hmap = new HashMap<Integer, String>();
 
     //add elements to HashMap
     hmap.put(1, "AA");
     hmap.put(2, "BB");
     hmap.put(3, "CC");
     hmap.put(4, "DD");
 
     // Displaying HashMap elements
     System.out.println("HashMap contains: "+hmap);
  }
}

Producción:

HashMap contains: {1=AA, 2=BB, 3=CC, 4=DD}

Referencias:

HashSet javadoc
HashMap javadoc

Por avivcas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *