Red de conocimiento informático - Aprendizaje de programación - La diferencia entre LinkedHashMap y HashMap en Map

La diferencia entre LinkedHashMap y HashMap en Map

En términos generales, lo que más utilizamos es HashMap, que es la mejor opción a la hora de insertar, eliminar y posicionar elementos en Map. Pero si desea iterar las claves en orden natural o personalizado, TreeMap es una mejor opción. Si necesita que la salida esté en el mismo orden que la entrada, entonces un LinkedHashMap funcionará, además se puede ordenar en el orden en que se leyó.

HashMap es uno de los mapas más utilizados. Almacena datos según el valor hashCode de la clave y se puede acceder a su valor directamente según la clave, con una velocidad de acceso muy rápida.

HashMap no admite la sincronización de subprocesos, es decir, varios subprocesos pueden escribir en HashMap al mismo tiempo en cualquier momento. Si se requiere sincronización, HashMap se puede sincronizar utilizando el método sincronizadoMap de Colecciones.

Hashtable es similar a HashMap, excepto que no permite que la clave o el valor del registro estén vacíos y admite la sincronización de subprocesos, es decir, solo un subproceso puede escribir en Hashtable en cualquier momento, por lo que esto También hace que el Hashtable en Escritura sea más lento.

LinkedHashMap guarda el orden de inserción de los registros. Cuando se utiliza un iterador para recorrer LinkedHashMap, el primer registro obtenido debe ser el primer registro insertado.

TreeMap, que es más lento que HashMap al recorrer, puede guardar la clasificación de registros según la clave. El orden predeterminado es ascendente. También puede especificar un comparador de clasificación. Cuando se utiliza un iterador para recorrer un TreeMap, los registros resultantes se ordenarán.