Páginas

4/8/16

Diferencia entre HashMap y Hashtable Java.

Diferencia entre HashMap y Hashtable en Java.

Diferencia entre HashMap y Hashtable en Java




Seguimos con preguntas de entrevistas, hay que recordar que la oportunidad que estás buscando puede que sea la entrevista que tienes mañana, lo que quiere decir que probablemente estas preparándote y quieres que todo salga bien, pero una pregunta tan sencilla como esta puede dejarte de lado si no sabes responderla con la seguridad de que sabes que lo que dices es cierto.
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 un Hashtable 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 del HashMap 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 sobre Hashtable, eso tiene una razón, Hashtable es
    legacy 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.
Aparte de las diferencias entre los dos, también poseen similitudes entre si:
  • 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