Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/07/2006, 17:28
Teklili
 
Fecha de Ingreso: marzo-2004
Ubicación: Montevideo
Mensajes: 17
Antigüedad: 20 años, 1 mes
Puntos: 0
La biblioteca estándar de Java tiene dos tipos diferentes de objetos Map (que es una interfaz con cierta funcionalidad): HashMap y TreeMap.

Ambos tienen la misma interfaz (dado que implementan Map), pero difieren claramente en la eficiencia.

Si se observa lo que hace un get(), parecerá bastante lento hacerlo buscando a través de la clave, por ej. de un ArrayList. Es aquí donde un HashMap acelera considerablemente las cosas. En vez de hacer una búsqueda lenta de la clave, usa un valor especial denominado "código de tipo hash". Ésta es una manera de tomar cierta información del objeto en cuestión y convertirlo en un entero "relativamente único" para ese objeto.

Todos los objetos de Java pueden producir un código de tipo hash, y HashCode() es un método de la clase raíz Object. Un HashMap toma un hashCode() del objeto y lo utiliza para localizar rápidamente la clave. Esto redunda en una mejora dramática de rendimiento.

Espero que esta información (extraída del libro "Thinking in Java") te aclare un poco las cosas. En el libro incluso hay un ejemplo de como aplicar esta funcionalidad.

Saludos