Hace solo unos minutos respondí una pregunta sobre el "Tamaño máximo posible de HashMap en Java". Como siempre he leído, HashMap es una estructura de datos de gran tamaño. Su tamaño solo está limitado por el tamaño de la memoria JVM. Por lo tanto, pensé que no existe un límite estricto para su tamaño y se respondió en consecuencia. (Lo mismo es aplicable a HashSet también.)¿Qué sucede cuando se alcanza la capacidad máxima de HashMap o HashSet?
Pero alguien me corrigió diciendo que desde la size() método devuelve un HashMap int, no es un límite en su tamaño. Un punto perfectamente correcto. Solo traté de probarlo en mi servidor local pero fallaba, necesito más de 8GB de memoria para insertar más de 2,147,483,647 enteros en el HashMap, que no tengo.
Mis preguntas fueron:
- Lo que sucede cuando tratamos de insertar 2147483647 + 1 elemento de la HashMap/HashSet?
- ¿Se ha producido un error?
- En caso afirmativo, ¿qué error? Si no es así, ¿qué sucede con el HashMap/HashSet, ya que es elementos existentes y el nuevo elemento?
Si alguien tiene acceso a una máquina con una memoria de 16 GB, puede probarlo prácticamente. :)
Pertenece a MapOverflow.com –
No necesita 16 GB de RAM. Simplemente obtenga una versión de 64 bits de Windows y cree un archivo de paginación para que el resto lo pruebe. – Mehrdad
Mi Windows también es de 32 bits :( – Bhushan