factor de carga de Joshua Bloch está principalmente relacionada con la calidad del hash función. Cuanto más cerca de cero sea el factor de carga, es menos probable que haya colisiones, incluso si la función hash no es tan buena. La compensación es que la huella de memoria es más grande. En otras palabras, HashMap no está distribuyendo las entradas en categorías separadas para cada código hash separado, sino que las está agrupando por proximidad, por lo que cuantos más segmentos tenga, cuanto más distribuida esté la distribución, menor será la probabilidad de que haya colisiones.
Por lo tanto, en definitiva, usted juega con el factor de carga para mejorar el tiempo de búsqueda o reducir la memoria, según sus necesidades y los objetos que está almacenando en el Mapa.
ConcurrencyLevel realmente depende de su aplicación. Si solo tienes dos o tres hilos ejecutándose en la aplicación, ahí tienes. Si usted es un servidor de aplicaciones con un número arbitrario de hilos, entonces necesita comprender cuál es su capacidad de carga y para qué punto desea optimizarla.
Una implementación de hashcode de buena calidad proporciona una distribución lo más amplia posible entre los posibles valores del objeto con el menor número de colisiones, respetando al mismo tiempo el contrato. En otras palabras, permite que HashMap (o Establecer según sea el caso) distribuya los objetos en depósitos separados, lo que hace que las búsquedas sean más rápidas.
Gracias Dave, mucho mejor Voy a tomar mi cola de usted –