Según la implementación de Sun Java, durante la expansión, ArrayList crece a 3/2 su capacidad inicial mientras que para HashMap la tasa de expansión es doble. ¿Cuál es la razón detrás de esto?¿Por qué ArrayList crece a una velocidad de 1.5, pero para Hashmap es 2?
Según la implementación, para HashMap, la capacidad siempre debe estar en poder de dos. Esa puede ser una razón para el comportamiento de HashMap. Pero en ese caso, la pregunta es, ¿para HashMap por qué la capacidad siempre debe estar en poder de dos?
StringBuffer/StringBuilder también crece en un factor de 2, y no hay ningún requisito de que su el tamaño tiene que ser una potencia de 2. –
Probablemente no sea nada más que el hecho de que dos programadores diferentes codificaron las implementaciones para ArrayList y HashMap y ambos decidieron arbitrariamente diferentes valores de crecimiento. –