Diferencia entre HashSet y HashMap

  • Autor de la entrada:
  • Categoría de la entrada:Sin categoría
  • Comentarios de la entrada:Sin comentarios

Por Chaitanya Singh | Filed Under: Paquete Java.util

En este artículo vamos a discutir las diferencias entre las clases de HashSet y HashMap.

Diferencias:

La clase HashSetHashMapHashSet implementa la interfaz del SetLa clase HashMap implementa la interfaz del MapaEn el HashSet almacenamos objetos(elementos o valores) por ejemplo, si tenemos un HashSet de elementos de cadena entonces podría representar un conjunto de elementos HashSet: {«Hola», «Hola», «Adiós», «Corre»}HashMap se usa para almacenar pares de claves y valores. En resumen, mantiene el mapeo de clave y valor (La clase HashMap es aproximadamente equivalente a Hashtable, excepto que no está sincronizado y permite nulos). Así es como podrías representar los elementos de HashMap si tiene una clave entera y un valor de tipo String: por ejemplo {1->»Hola», 2->»Hola», 3->»Adiós», 4->»Run»}HashSet no permite elementos duplicados, lo que significa que no puedes almacenar valores duplicados en HashSet.HashMap no permite claves duplicadas sin embargo permite tener valores duplicados.HashSet permite tener un solo valor nulo.HashMap permite una sola 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 las operaciones de seguridad de hilos unitarios a menos que se sincronicen explícitamente. Así es como se pueden sincronizar explícitamente:
HashSet:

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

HashMap:

Mapa m = Collections.synchronizedMap(nuevo HashMap(...));

2) Ambas clases no garantizan que el orden de sus elementos se mantenga constante en el tiempo.

3) Si miras el código fuente de HashSet entonces puedes encontrar que está respaldado por un HashMap. Así que básicamente usa internamente un HashMap para todas sus operaciones.

4) Ambos proveen un rendimiento constante en el tiempo para operaciones básicas como agregar, remover elementos, etc.

Ejemplo de HashSet

importar java.util.HashSet;class HashSetDemo{ public static void main(String[] args) { // Crear un HashSet HashSet<String> hset = nuevo HashSet<String>(); //añadir elementos al HashSet hset.add("AA"); hset.add("BB"); hset.add("CC"); hset.add("DD"); // Mostrar elementos de HashSet System.out.println("HashSet contiene: "); for(String temp : hset){ System.out.println(temp); } }}

Salida:

HashSet contiene: AABBCCDD

Ejemplo de HashMap

importar java.util.HashMap;class HashMapDemo{ public static void main(String[] args) { // Crear un HashMap HashMap<Integer, String> hmap = nuevo HashMap<Integer, String>(); //añadir elementos al hmap de HashMap.put(1, "AA"); hmap.put(2, "BB"); hmap.put(3, "CC"); hmap.put(4, "DD"); // Mostrar elementos de HashMap System.out.println("HashMap contiene: "+hmap); }}

Salida:

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

Referencias:

HashSet javadoc
HashMap javadoc

  1. Java – Métodos poll(), pollFirst() y pollLast() de LinkedList
  2. Java – Obtener el índice de la última ocurrencia de un elemento en LinkedList
  3. ¿Cómo comprobar si un HashMap está vacío o no?
  4. Java – ¿Cómo ordenar un HashSet?
  5. HashMap – Obtener el valor del ejemplo clave
  6. Diferencia entre HashSet y TreeSet

Comentarios

  1. Prateek MishrasaysAugust 11, 2015 at 10:06 AMExcelente Descripción. Maravilloso sitio web con ejemplos.
  2. srikanthsays23 de enero de 2017 a las 12:47 PMCómo HashSet utiliza internamente el HashMap?Reply

Deja una respuesta