Diferencia entre HashMap y Hashtable en Java
Estas dos estructuras de datos son muy similares, pero también tienen algunas diferencias muy notables, haciendo una breve introducción, los dos son estructuras de datos muy usados en el Collection framework.
Te puede interesar: Que es un HashMap y como funciona.
Diferencias:
- El
HashMap
solo permite un null key y cualquier cantidad de null values, en cambio unHashtable
no permite ningún null ya sea en key o en value. - Thread Safe,
Hashtable
es ideal para usarlo en aplicaciones multi threaded (multi hilos), internamente todos sus métodos son synchronized a diferencia delHashMap
que no es recomendable en aplicaciones multi threaded. - La diferencia anterior nos lleva al performance, ¿cual tiene mejor rendimiento? Todos los componentes, estructuras de datos, variables... que no sean syncronized tienen un mejor performance que las que lo son, lo que quiere decir que en cuestiones de rendimiento es mejor utilizar un
HashMap
. - Que es lo que más se utiliza, últimamente se ha usado más
HashMap
sobreHashtable
, eso tiene una razón,Hashtable
eslegacy classlegacy class en Java: se dice que una clase es legacy class porque ya no es compatible con las nuevas tecnologías, el hecho de que una clase allá sido creada por un ingeniero de Java no quiere decir que esta bien diseñada y que va ser escalable, de hecho, el HashMap puede hacer todo lo que hace un Hashtable, siempre es recomendable en estos momentos de Java 8, que utilicemos HashMap sobre Hashtable por esa razón., y por esa razón es preferible utilizar HashMap.
- Las dos implementan la Interface
Map
. - No garatizan ningún orden al momento de insertar información.
- Trabajan bajo el principio del hashingEl principio se basa en asignar una ubicación para cierta key, dependiendo de una key determinada se le asigna un id único, en este caso se utiliza la función hashCode() la cual heredan todos los objetos en Java, algo importante de resaltar es que un objeto solo retornara un id, lo que quiere decir que si invocamos el hashcode con otro objeto idéntico devolverá el mismo id.
Ya es decisión de los ingenieros como crear los proyectos, siempre es bueno saber las diferencias entre uno y otro porque puede que trabajes en un proyecto que ya utilicé
Hashtable
y de verdad no tienes idea cual es la diferencia y por qué utilizan uno o el otro. No olvides comentar si te gusto la entrada, suerte!!
No hay comentarios :
Publicar un comentario