Мы привыкли говорить, что операции HashMap
get / put
являются O (1). Однако это зависит от реализации хэша. Хэш объекта по умолчанию - это внутренний адрес в куче JVM. Уверены ли мы, что этого достаточно, чтобы утверждать, что get / put
равны O (1)?
Доступная память - еще одна проблема. Как я понимаю из документации javadocs, коэффициент загрузки HashMap
должен быть 0,75. Что, если у нас недостаточно памяти в JVM и коэффициент загрузки
превышает предел?
Таким образом, похоже, что O (1) не гарантируется. Имеет ли это смысл или я чего-то упускаю?