КлассHashtableпредназначен для создания коллекции, в которой для хранения ее элементов служит хеш-таблица. Как должно быть известно большинству читателей, информация сохраняется вхеш-таблицес помощью механизма, называемогохешированием.При хешировании для определения уникального значения, называемогохеш-кодом, используется информационное содержимое специального ключа. Полученный в итоге хеш-код служит в качестве индекса, по которому в таблице хранятся искомые данные, соответствующие заданному ключу. Преобразование ключа в хеш-код выполняется автоматически, и поэтому сам хеш-код вообще недоступен пользователю. Преимущество хеширования заключается в том, что оно обеспечивает постоянство времени выполнения операций поиска, извлечения и установки значений независимо от величины массивов данных. В классеHashtableреализуются интерфейсыI Dictionary, ICollection, IEnumerable, ISerializable, IDeserializationCallbackиICloneable.
В классеHashtableопределено немало конструкторов. Ниже приведены наиболее часто используемые конструкторы этого класса.
public Hashtable public Hashtable(IDictionary d) public Hashtable(intcapacity)public Hashtable(intcapacity,
floatloadFactor)
В первой форме создается создаваемый по умолчанию объект классаHashtable.Во второй форме создаваемый объект типаHashtableинициализируется элементами из коллекцииd.В третьей форме создаваемый объект типаHashtableинициализируется, учитывая емкость коллекции, задаваемую параметромcapacity.И в четвертой форме создаваемый объект типаHashtableинициализируется, учитывая заданную емкостьcapacityи коэффициент заполненияloadFactor.Коэффициент заполнения, иногда еще называемыйкоэффициентом загрузки,должен находиться в пределах
от ОД до 1,0. Он определяет степень заполнения хеш-таблицы до увеличения ее размера. В частности, таблица расширяется, если количество элементов оказывается больше емкости таблицы, умноженной на коэффициент заполнения. В тех конструкторах, которые не принимают коэффициент заполнения в качестве параметра, этот коэффициент по умолчанию выбирается равным 1,0.