@returnZero

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

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

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

Войти через центр авторизации
Похожие вопросы