La comparación entre hashmap y hashtable es una pregunta común en las entrevistas de Java, que se utiliza para probar si los programadores pueden usar las clases de recolección correctamente y si pueden adaptarse a varias ideas para resolver problemas. Cómo funciona el hashmap, la comparación de ArrayList con Vector, y esta pregunta es la pregunta más clásica sobre los marcos de colección Java. Hashtable es una clase de colección obsoleta que ha existido en la API de Java durante mucho tiempo. Se reescribió en Java 4 e implementó la interfaz del mapa, por lo que desde entonces se ha convertido en parte del marco de colección Java. Hashtable y Hashmap son bastante fáciles de hacer en las entrevistas de Java, e incluso se han convertido en las preguntas más comunes que se evaluarán en las entrevistas del marco de recaudación, así que no olvide preparar esta pregunta antes de participar en cualquier entrevista de Java.
En este artículo, no solo veremos la diferencia entre hashmap y hashtable, sino también las similitudes entre ellos.
La diferencia entre hashmap y hashtable
Tanto el mapa hashmap como el hashtable implementan interfaces de mapas, pero antes de decidir cuál usar, primero debe descubrir la diferencia entre ellas. Las principales diferencias son: seguridad de subprocesos, sincronización y velocidad.
Algunos términos importantes a tener en cuenta:
1) SyCronized significa que solo un hilo puede cambiar el hashtable a la vez. Es decir, cualquier hilo primero debe obtener el bloqueo de sincronización cuando quiera actualizar la HAESHABLE. Otros hilos deben esperar hasta que se libere el bloqueo de sincronización antes de que puedan obtener el bloqueo de sincronización y actualizar nuevamente el hashtable.
2) El iterador a prueba de fallas y iterador está relacionado. Si un objeto de colección crea un iterador o listiterator, y luego otros hilos intentan cambiar el objeto de recolección "estructuralmente", se lanzará una excepción concurrente de Modificación Excepción. Pero otros hilos pueden cambiar el objeto de colección a través del método set () está permitido porque esto no cambia la colección "estructuralmente". Sin embargo, si la estructura se ha cambiado y se llama el método set (), se lanzará una excepción ilegalargumentException.
3) Los cambios estructurales se refieren a eliminar o insertar un elemento, que afectará la estructura del mapa.
¿Podemos hacer que la sincronización de hashmap?
Hashmap se puede sincronizar a través de la siguiente declaración:
Mapa m = colección.synchronizemap (hashmap);
en conclusión
Existen varias diferencias principales entre hashtable y hashmap: seguridad y velocidad de subprocesos. Use hashtable solo cuando necesite seguridad completa de subprocesos, y si usa Java 5 o superior, use concurrenthashmap.
Enlace original: Javarevisited Traducción: importnew.com - Tang Xiaojuan Enlace de traducción: http://www.importnew.com/7010.html