@returnZero

Как устроен Dictionary в C#?

Всем привет, есть вопрос касательно внутреннего устройства Dictionary в С#. При инициализации Dictionary в нём создаются 2 внутренних массива buckets и entries. Как я понимаю их размер равен между собой(если что поправьте) и является ближайшим простым числом(3 например), при добавлении элемента мы высчитываем с него хэш-код специальной хэш-функцией которая является реализацией GetHashCode() объекта-ключа. И далее этот хэш-код с помощью модуля от размера словаря. Но я немного не понимаю что именно за индекс мы получаем - индекс в buckets или в entries?
Если в buckets, то откуда берется индекс в entries?
И правильно ли я понимаю что структура Entry - это по сути узел односвязного списка?
  • Вопрос задан
  • 162 просмотра
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Оба этих массива синхронные в первом хранится хэш во втором значение, за подробностями традиционно на гитхаб там исходники, только не пугайтесь их кода
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы