На этом уроке мы поработаем с Hashtable - каким именно образом в неё складываются значения и почему она будет работать, даже если хеш-функция вернёт одинаковые значения. Также мы увидим, что порядок элементов путается, а сами значения хранятся в очень хитром виде. В конце урока мы сделаем всё то же самое с гибридным классом. Самостоятельное задание: сравнить скорость работы этих коллекций. 1 этап: создать МНОГО коллекций по 8 и по 9 элементов (ОТДЕЛЬНО). 2 этап: создать ОДНУ коллекцию из ОГРОМНОГО количества элементов. Подвести итоги и в отчёте написать вывод.
Дата отправки отчёта:
27 ноября 2018 г.
Задание выполнено: за
2 час. 51 мин.
Чему научился:
Попробовал поработать с Hashtable и Hybrid Dictionary. Удалось провести тест с 1М коллекций, размером до 10 элементов.
Что было сложным:
Не получилось создать 1 коллекцию размером до 10М, застрял на ListDictionary. Получал исключения типа "existing key", переделал добавление элементов по индексу (dict.Add(i, i)); На небольшом кол-ве элементом (до 10000) всё работает, дальше программа висит. Буду разбираться.
Евгений, удалось поэкспериментировать, получились следующие результаты (в миллисекундах) Во втором тесте ListDictionary убрал, для таких больших коллекций он не подходит.
Научился: HybridDictionary - WIN!!!
Я думал что ListDictionary будет быстрей, но оказалось что HybridDictionary лучше :) Трудности: С размещением в Hashtable и HybridDictionary элементов в будущем разберу, сейчас главное суть понять.
Научился: Ознакомился и поработал с новыми коллекциями Hashtable, HybrideDictionary, разобрался с тем как они располагаются в памяти. Наконец-то понял, что такое вообще hash и откуда он берется))) Трудности: При подборе количества итераций цикла (100000) в ListDictionary комп висит - поэтому ограничился 10000! Нет