Una colección Aprende Mapa ella? colección de mapas de lo que son para lograr
1.HashMap HashTable LinkedHashMap TreeMap ConcurrentHashMap
diferencia entre los dos .HashMap y HashTable
HashMap no es seguro hilo
HashMap es una subclase de la correlación de interfaz, la clave se asigna a un valor objetivo, en el que las claves y los valores son objetos, y no puede contener duplicados de las llaves, pero puede contener un valor duplicado. HashMap permite clave nula y sin valor nulo, y no está permitido tabla hash.
HashTable son thread-safe
Hashtable HashMap es una aplicación ligera (no seguro para subprocesos aplicación), han completado la interfaz del mapa, la diferencia principal es que HashMap permite clave nula (llave) (nulo), debido a la no-thread-safe, tabla hash puede ser mayor que en la eficiencia.
. 1 .HashMap: + array lista enlazada basado en la parte inferior (árbol rojo-negro), una caja fuerte para no hilo, la capacidad por defecto es 16, y el valor de la clave para permitir vacío
array: Nodo <K, V> [ mesa], cada elemento es nodo una
lista enlazada: nodo <K, V> siguiente , cuando se produce la colisión de hash, se añadirá a la lista, la lista cuando la longitud es mayor que 8, entonces se convierte en un árbol rojo-negro
2. la tabla hash: basado en la tabla hash subyacente, el hilo de seguridad es la capacidad por defecto es 11, y no permite valores vacíos clave de
tres .hashCode () y equals () métodos de utilización de la escena
método hashCode () para obtener un número entero único dado objeto. Cuando el objeto a ser almacenado en dicha estructura de datos de una una tabla hash, el número entero para determinar la posición de la bañera. Por defecto, el método objeto hashCode () devuelve la dirección de memoria del objeto donde la representación entera.
método equals () se utiliza simplemente para verificar la igualdad de dos objetos. La implementación por defecto simplemente dos objetos referencias a objetos de inspección, para verificar su igualdad.
hashCode (): clase Object Método entre los padres de nivel superior, tipo de retorno es un int, generando una matriz de acuerdo con una regla determinada (campo de memoria de direcciones, una longitud, etc.), los datos se almacenan de valor Hash
equals (): Inicio objeto de clase de método basado en una regla de comparación predeterminado, determina si el objeto es uniforme, el subyacente lógica general:
dirección de memoria 1 como un objeto para la determinación
2. Analizar y tipo de clase juicio no vacío
3. fuertes transfectadas
4. objetos un campo emparejado cómo debe elegir cuatro .HashMap y TreeMap
HashMap: el uso de la estructura de la lista matriz subyacente + (árbol rojo-negro), se puede lograr el almacenamiento y recuperación rápida, pero los datos son no ordenada, adaptado para ser insertado o suprimido en el elemento adquirido entre Mapa
TreeMap: estructura de almacenamiento es un árbol binario equilibrado, encarnado manera que el árbol rojo-negro, incumplimientos orden natural, la intercalación se puede personalizar, pero debe implementar la interfaz Comparador
puede ser fácil de implementar diversos elementos dentro de la clasificación, pero la diferencia en el rendimiento de HashMap para su cotejo y la costumbre ordenados de acuerdo a lo natural
Cinco relación .Ajustar y mapa de
conjunto básico no se almacena elementos duplicados, almacenar un conjunto único de objetos
creados entre cada aplicación se corresponde Mapa
HashMap, HashSet TreeMap TreeSet correspondiente correspondiente VI. Común Mapa de colación de conformidad con la Regla añadido uso LinkedHashMap, de acuerdo con las reglas de encargo ordenamiento natural o de pedido puede ser utilizado TreeMap VII. cómo asegurar Mapa thread-safe entorno multi-roscado, no se puede utilizar en un paquete concurrente ConcurrentHashMap o utilizar Collections.synchronizedList (nuevo HashMap <K, V); ConcurrentHashMap seguridad hilo garantía, la eficiencia de HashTable, extracción de bloqueo segmentos