11
HashMap
В предыдущей главе мы написали реализацию интерфейса Map,
использующую хеширование. Ожидалось, что эта версия будет
быстрее, так как списки, которые нужно искать, короче, но по-
рядок роста по-прежнему линейный.
При наличии n записей и k подкарт размер последних в среднем
равен n / k и по-прежнему пропорционален n. Но увеличение k
вместе с n позволит ограничить размер n / k.
Например, предположим, что мы удваиваем k каждый раз,
когда n превышает k; в этом случае количество записей, при-
ходящееся на одну карту, будет меньше 1 в среднем и почти
всегда меньше 10, если хеш-функция достаточно хорошо рас-
пределяет ключи.
Если количество записей на подкарте постоянное, то можно
производить поиск одной такой карты за постоянное время.