Java hashmap

Páginas: 13 (3202 palabras) Publicado: 4 de septiembre de 2010
public class HashMap <K,V> 
se extiende AbstractMap <K,V> 
Mapa implementa <K,V>, Cloneable, Serializable 
tabla hash basado en la aplicación de la interfaz del mapa. Esta aplicación cuenta con todas las operaciones de mapa opcional, y permite valores nulos y la clave null. (La clase HashMap es aproximadamente equivalente a Hashtable, excepto que no está sincronizado ypermisos nulos.) Esta clase no ofrece ninguna garantía en cuanto al orden de la hoja, en particular, no garantiza que el orden se mantendrá constante en el tiempo. 

Esta aplicación proporciona tiempo constante de rendimiento para las operaciones básicas (get y put), suponiendo que la función hash disperse los elementos adecuadamente entre los cubos.Iteración sobre la opinión de recolección requiereun tiempo proporcional a la "capacidad" de la instancia de HashMap (el número de cubos), además de su tamaño (el número de asignaciones de clave y valor). Por lo tanto, es muy importante que no se establezca la capacidad inicial demasiado alto (o el factor de carga muy baja) si el rendimiento de iteración es importante. 

Una instancia de HashMap tiene dos parámetros que afectan a su rendimiento:capacidad inicial y el factor de carga. La capacidad es el número de cubos en la tabla hash y la capacidad inicial es simplemente la capacidad en el momento de crear la tabla hash. El factor de ocupación es una medida de qué tan lleno la tabla hash se le permite obtener antes su capacidad aumenta automáticamente. Cuando el número de entradas en la tabla hash excede el producto del factor de cargay la capacidad existente, la tabla hash es un refrito (es decir, estructuras de datos internas son reconstruidos) para que la tabla hash tiene aproximadamente el doble del número de cubos. 

Como regla general, el factor de carga por defecto (0,75) ofrece una solución de compromiso adecuado entre tiempo y los costes de espacio. Los valores más altos disminuir la sobrecarga de espacio, peroaumentan el costo de búsqueda (que se refleja en la mayoría de las operaciones de la clase HashMap, incluyendo get y put). El número previsto de las inscripciones en el mapa y su factor de carga debe tenerse en cuenta al fijar su capacidad inicial, con el fin de reducir al mínimo el número de operaciones refrito. Si la capacidad inicial es mayor que el número máximo de entradas dividido por el factorde carga, no hay operaciones refrito nunca se producirá. 

Si las asignaciones de muchos que se almacena en una instancia de HashMap, creando con una capacidad suficiente permitirá que las asignaciones que se almacenen de manera más eficiente de permitir que se realice refrito automática según sea necesario para crecer la mesa. 

Tenga en cuenta que esta implementación no está sincronizado. Siel acceso de varios subprocesos al mismo tiempo un mapa hash, y al menos uno de los hilos modifica el mapa estructural, debe ser sincronizado externamente. (Una modificación estructural es una operación que agrega o elimina una o más asignaciones, sino simplemente cambiar el valor asociado a una clave que ya contiene una instancia no es una modificación estructural.) Esto se realiza generalmentemediante la sincronización en algún objeto que, naturalmente, encapsula el mapa . Si no existe tal objeto, el mapa debe ser "envuelto" por el método Collections.synchronizedMap. Esto se hace mejor en tiempo de creación, para evitar el acceso accidental a la falta de sincronización mapa: 

   Mapa Collections.synchronizedMap m = (HashMap (...)); nueva 
Los iteradores devuelto por todas "estaclase de métodos de recopilación de vista" son a prueba de velocidad: si el mapa es estructuralmente modificada en cualquier momento después de que el iterador se crea, en modo alguno, sino por el iterador del propio método remove, el iterador lanzará una ConcurrentModificationException . Así, en la cara de la modificación concurrente, el iterador no rápida y limpia, en lugar de correr el riesgo de...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • investigacion hashmap
  • HASHMAP
  • Java
  • java
  • javo
  • Javo
  • Javiera
  • JAVA

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS