HashMap
содержит значения в массиве, которые могут содержать до Integer.MAX_VALUE
. Но это не учитывает столкновения. Каждый Entry
имеет поле next
, которое также является записью. Таким образом разрешаются коллизии (два или более объекта с одинаковым хеш-кодом). Поэтому я бы не сказал, что есть какой-либо предел (кроме доступной памяти)
Обратите внимание, что если вы превысите Integer.MAX_VALUE
, вы получите неожиданное поведение от некоторых методов, таких как size()
, но get()
и put()
будут работать И они будут работать, потому что hashCode()
любого объекта будет возвращать int
, следовательно, по определению каждый объект будет вписываться в карту. И тогда каждый объект столкнется с существующим.