@annaTomas

В чём отличие хэш-таблицы от словаря и ассоциативного массива в C#?

Всем добрый день, не совсем понятно отличие между ассоциативным массивом, хэш-таблицей(hashtable) и словарём(dictionary/map) и как это проявляется в языке c#. Как я понял, есть ADT - хэш-таблица которая представлена хэш-функцией и массивом - кормим ей ключ и значение => хэш-функция(над ключом) => индекс в массиве => операция над входными данными. Могут возникнуть коллизии которые решаются либо открытой адресацией(пробирование) либо связанным списком и вот тут встал вопрос - а чем это отличается от словаря и ассоциативного массива и как это проявляется в C#(отличие hashtable и dictonary?) Где-то говорят что словарь это та же хэш-функция в которой коллизии решаются через открытую адресацию, где-то что это(словарь) абстрактное нечто что должно уметь работать с парой ключ/значение и это может быть реализовано хоть через дерево. Во-общем, помогите пожалуйста разобраться. Заранее спасибо!
  • Вопрос задан
  • 909 просмотров
Решения вопроса 1
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Словарь и ассоциативный массив - это синонимы. Хеш-таблица - это вариант реализации словарей.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Griboks
@Griboks Куратор тега C#
не совсем понятно отличие между ассоциативным массивом, хэш-таблицей(hashtable) и словарём(dictionary/map)

Не стоит использовать перевод терминов, потому что в шарпе есть конкретные классы с конкретными названиями.

Для примера рассмотрим Dictionary<TKey, TValue>.
и как это проявляется в языке c#

Заходите в репозиторий и смотрите интересующие вас детали реализации.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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