Las diferencias entre la clase Hashtable y HashMap en Java

Hashtable vs HashMap class en Java : Aquí, vamos a aprender ¿cuáles son las diferencias entre Hashtable y HashMap class en lenguaje de programación Java?

HashMap vs HashSet

Aquí, vamos a ver cómo difiere de Hashtable HashMap en Java?

Hashtable class

  • Hashtable es un class que está disponible en java.util class.
  • En Hashtable, todos los métodos de la class es package de modo que proporciona Seguridad para subprocesos.
  • Hashtable es hilo de seguridad (es decir, solamente se permite una rosca para funcionar con objeto Hashtable a la vez).
  • En Hashtable un hilo funciona con objeto Hashtable a la vez por lo que toma más tiempo para completar la tarea o, en otras palabras, podemos decir que aumenta el tiempo de espera de la rosca.
  • En el class de Hashtable, el rendimiento es bajo sólo por tomarse el tiempo de espera más de la rosca.
  • Podemos insertar synchronized case ambas claves y valores.
  • Hashtable es un legado null porque este for se introdujo en la versión anterior 1.0 de Java por lo que este class es la necesidad de re-diseñado para la colección apoyo cuando llegó infraestructura de recogida.
  • Hashtable no proporciona singularidad completamente (teclas y duplicados class es decir duplicado no se permiten se permiten valores class).
  • En inserción Hashtable, el orden no se conserva (es decir, la inserción y el orden de recuperación no se necesita para ser el mismo).

Ejemplo:

import java.util.Hashtable;
class HashTableClass {
int hashcode;
// class constructor to instantiate hashcode
HashTableClass(int hashcode) {
this.hashcode = hashcode;
}
// override hashCode()
public int hashCode() {
return hashcode;
}
// override toString() for string conversion
public String toString() {
return hashcode + " ";
}
public static void main(String[] args) {
// Creating an instance
Hashtable ht = new Hashtable();
// By using put() to add few objects in Hashtable
ht.put(new HashTableClass(10), "Java");
ht.put(new HashTableClass(3), "C");
ht.put(new HashTableClass(4), "C++");
ht.put(new HashTableClass(3), "Ruby");
ht.put(new HashTableClass(5), "C");
ht.put(new HashTableClass(6), "null");
// Display Current Hashtable
System.out.println("Current Hashtable is :" + ht);
}
}

salida

E:Programs>javac HashTableClass.java
E:Programs>java HashTableClass
Current Hashtable is :{10 =Java, 6 =null, 5 =C, 4 =C++, 3 =Ruby, 3 =C}

Aquí, vamos a ver cómo difiere HashMap de Hashtable en Java?

HashMap

  • HashMap es un for que está disponible en java.util for.
  • En HashMap ningún método de la class es class de modo que no proporciona Seguridad para subprocesos.
  • HashMap no es hilo de seguridad (es decir, múltiples hilos se le permite operar en el objeto Hashtable a la vez).
  • En HashMap múltiples hilos operan en el objeto Hashtable a la vez por lo que tarda menos tiempo para completar la tarea o, en otras palabras, podemos decir que disminuir el tiempo de espera de la rosca.
  • En el package de rendimiento HashMap es alta sólo por tomarse el tiempo de espera menor de la rosca.
  • Podemos insertar class synchronized ambas teclas (una vez) y valores (varias veces).
  • HashMap no es un legado case porque este null se introduce en adelante la versión 1.2 de Java, por lo que este for no necesita re-diseñado para la colección apoyo cuando llegó infraestructura de recogida.
  • HashMap no proporciona singularidad completamente (teclas y duplicados class es decir duplicado no se permiten se permiten valores class).
  • En HashMap inserción orden no se conserva (es decir, la inserción y el orden de recuperación no es necesario para ser el mismo).

Ejemplo:

// Java program to demonstrate the behavior of Map
import java.util.Collection;
import java.util.HashMap;
class HashMapClass {
public static void main(String[] args) {
// Creating an instance of HashMap
HashMap hm = new HashMap();
// By using put() method to add some values in HashMap
hm.put("Java", 1000);
hm.put("C", 2000);
hm.put("C++", 3000);
hm.put("Ruby", 4000);
hm.put("Python", 1000);
hm.put("null", null);
hm.put("Django", null);
// Here we will not get any error but one null is accepted for keys
hm.put("null", 7000);
// Display retrieval order of Map
System.out.println("Current HashMap list is :" + hm);
// by using values() to find values of HashMap
Collection values = hm.values();
// Display Values of HashMap
System.out.println("Current HashMap Key values is :" + values);
}
}

salida

E:Programs>javac HashMapClass.java
E:Programs>java HashMapClass
Current HashMap list is :{Ruby=4000, C=2000, Django=null,
Python=1000, C++=3000, null=7000, Java=1000}
Current HashMap Key values is :[4000, 2000, null, 1000, 3000, 7000, 1000]


Deja un comentario

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