Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Коллекция графов / Hashtable

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




Оцени работу

 
Сохранить страницу:

1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Айдар  # Коллекция графов / Hashtable / 2018-11-28 00:10

нужно убедиться, что все ключи разные.


20167. --
Айдар
Айдар
ответить
→  Евгений Волосатов  # Коллекция графов / Hashtable / 2018-11-28 17:46

Евгений, удалось поэкспериментировать, получились следующие результаты (в миллисекундах)
Во втором тесте ListDictionary убрал, для таких больших коллекций он не подходит.

1M items collections
1M List Dictionary result: 3601237
--------------------
1M Hashtable result: 263
--------------------
1M Hybrid Dictionary result: 349


10M items collections
10M Hashtable result: 4922
--------------------
10M Hybrid Dictionary result: 3865


  • Отчёт оценивали:
    1Евгений Волосатов+1   3922Александр+1   3747Сергей+1   9752chokayes+1   8275Tekashnik+1   18783Andrew+1   20111Deep Network+1   18493Evgenii Kudriavtcev+1   17947Dmitry Sinitsin+1   791Валерий Жданов+1   16218Дмитрий+1   11353AlliZzeN+1   11589Yefim+1   17606Виктор+1   162Андрей+1   19384Владимир+1  

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: HybridDictionary - WIN!!! Я думал что ListDictionary будет быстрей, но оказалось что HybridDictionary лучше :)
Трудности: С размещением в Hashtable и HybridDictionary элементов в будущем разберу, сейчас главное суть понять.



Научился: Ознакомился и поработал с новыми коллекциями Hashtable, HybrideDictionary, разобрался с тем как они располагаются в памяти. Наконец-то понял, что такое вообще hash и откуда он берется)))
Трудности: При подборе количества итераций цикла (100000) в ListDictionary комп висит - поэтому ограничился 10000!
Нет