Colección de citas famosas - Diccionario de frases chinas - Comprensión profunda de la diferencia entre HashMap y TreeMap en Java

Comprensión profunda de la diferencia entre HashMap y TreeMap en Java

HashMap: las claves/valores se almacenan en matrices, son seguros para subprocesos, se permite nulo como clave y valor, las claves no se pueden repetir, se permite repetir los valores y no se garantiza que el orden de iteración de los elementos sea el orden en que fueron insertados. Primero calcule el hash de la clave y luego calcule. Cada vez que se expande la capacidad, se vuelve a calcular el valor hash de la clave, lo que consume recursos y requiere que la clave anule los métodos iguales y de código hash.

La capacidad inicial predeterminada es 16 y el factor de carga es 0,75. Cuando la capacidad se amplíe a 2 veces la capacidad anterior, la búsqueda de elementos será más rápida. Si las claves son iguales, se comparan los valores. Si los valores son diferentes, los valores se almacenan de acuerdo con la estructura de la lista vinculada, es decir, hay varios valores detrás de una clave;

TreeMap: implementación de NavigableMap basada en red- árboles binarios negros. No es seguro para subprocesos, no se permiten valores nulos, las claves no se pueden repetir y se permite la repetición de valores. Los elementos almacenados en TreeMap deben implementar la interfaz Comparable o la interfaz Comparator y los elementos se iterarán de acuerdo con el orden de clasificación. No se permite que dos claves comparadas generen classCastException. Se utiliza principalmente para la clasificación automática al almacenar elementos y la salida en orden de clasificación durante la salida iterativa.