Интересует каким образом реализован hash table. Непонятно следующее: хеш функция от любых значений ключа должна выдвавать целые значение в строго фиксированном дипазоне напрмер от 0..n? Массив размером n для хранения значений выделается сразу или по мере заполнения таблицы?