La Red de Conocimientos Pedagógicos - Currículum vitae - ¿Cuál es la diferencia entre tabla hash y mapa hash?

¿Cuál es la diferencia entre tabla hash y mapa hash?

1. Diferentes clases de herencia

Hashtable hereda de la clase Dictionary, mientras que HashMap hereda de la clase AbstractMap, pero ambos implementan la interfaz Map;

2. Seguridad de subprocesos

1. HashTable está sincronizado (Synchronize se usa en el método), mientras que HashMap no está sincronizado (Synchronize está predeterminado en el método).

2. Hashtable es seguro para subprocesos porque Synchronize se agrega a cada método. En un entorno concurrente de subprocesos múltiples, puede usar Hashtable directamente sin agregar sincronización.

El subproceso HashMap es. no es seguro, porque la capa inferior de HashMap es una matriz de entrada. Cuando ocurre un conflicto de hashmap, el hashmap se resuelve mediante una lista vinculada y el nodo principal de la lista vinculada se almacena en la posición de la matriz correspondiente. Para las listas vinculadas, los nodos recién agregados se agregarán desde el principio.

3. ¿Existe un método contiene?

1. HashTable tiene un método contiene (valor del objeto), que tiene la misma función que el método contieneValue (valor del objeto).

2. HashMap elimina el método contiene de Hashtable y lo cambia a contieneValue y contieneKey.

4. ¿Se permite el valor nulo?

La clave y el valor son objetos, pero no pueden tener valores de clave duplicados y los valores de valor pueden aparecer repetidamente.

1. En Hashtable, no se permiten valores nulos en clave y valor.

2. HashMap permite valores nulos (tanto clave como valor), porque nulo se puede usar como clave en HashMap y su valor correspondiente puede tener múltiples nulos.

5. La implementación interna de los métodos transversales es diferente

1. HashTable usa Enumeration y HashMap usa Iterator.