Rehashing en Hashmap [cerrado]

La capacidad inicial y el factor de carga dos parámetros que afectan a laHashMap actuación. El factor de carga predeterminado (.75) ofrece una buena compensación entre los costos de tiempo y espacio. Los valores más altos disminuyen la sobrecarga de espacio pero aumentan el costo de búsqueda.

Cuando un elemento se agrega a laHashMap, se asigna a un grupo basado en un valor derivado de suhashCode y el tamaño del cubo de laHashMap. Para identificar el cubo para cualquier uso de mapa hashkey.hashCode() y realizar alguna operación:

Bucket (index) = HashMap.indexFor(HashMap.hash(key.hashCode()),
                                  entryArray.length)

Cuando el número de entradas en el mapa hash excede el producto del factor de carga y la capacidad actual, el mapa hash se vuelve a realizar (las estructuras de datos internas se reconstruyen), de modo que el mapa hash tiene aproximadamente el doble de cubetas.

Cuando se recarga y se mueve todo a una nueva ubicación (cubo, etc.), los elementos más antiguos también se vuelven a lavar y se almacenan en el nuevo cubo según sus nuevos códigos hash. El espacio antiguo que fue asignado para almacenar los elementos es la basura recolectada.

Si dos hilos al mismo tiempo encuentran que ahoraHashMap necesita un cambio de tamaño y ambos intentan cambiar el tamaño puede causar una condición de carrera enHashMap.

En el proceso de redimensionamiento deHashMap, el elemento en el depósito que se almacena en la lista enlazada se invierte en orden durante su migración al nuevo depósito porque JavaHashMap no agrega el nuevo elemento en la cola, sino que agrega un nuevo elemento en la cabeza para evitar el desplazamiento de la cola. Si la condición de carrera ocurre, terminarás con un bucle infinito.

Tengo las siguientes preguntas:

¿Por qué la lista enlazada para cada grupo se invierte en orden durante la migración a un grupo nuevo?¿Cómo puede conducir la condición de carrera a un bucle infinito?¿Cómo puede aumentar el número de cubos disminuir el tiempo de espera de búsqueda?¿Los elementos que están en el mismo cubo seguirán juntos en el mismo cubo después de volver a lavar?

Respuestas a la pregunta(2)

Su respuesta a la pregunta