Разница между хеш-таблицей и словарем
Оглавление:
- Что такое универсальный тип данных
- Что такое Hashtable
- Что такое словарь
- Разница между хеш-таблицей и словарем
В главное отличие между Hashtable и Dictionary заключается в том, что Hashtable - это слабо типизированная структура данных, поэтому можно добавлять ключи и значения любого типа, в то время как Dictionary - это строго типизированная структура данных, поэтому можно добавлять только элементы, которые удовлетворяют указанным типам данных как для ключа, так и для значения.
Хеш-таблица и словарь - две основные структуры данных. Оба они могут хранить данные в виде пар ключ-значение. Hashtable или Dictionary могут содержать только уникальные ключи. Программист может найти или удалить конкретное значение с помощью ключа. Hashtable не является строго типизированным. Таким образом, программист может добавить в Hashtable любой элемент пары ключ-значение. С другой стороны, Словарь строго типизирован. Программист должен указать типы данных ключей и значений. Невозможно добавить элементы, не удовлетворяющие указанным типам данных. Например, если словарь имеет общий тип, программист может добавлять элементы только с ключами типа int и значениями строкового типа.
Словарь, хеш-таблица, структуры данных
Что такое универсальный тип данных
Универсальный тип данных - это тип данных, который позволяет пользователю определять классы и методы с помощью заполнителей. Компиляторы, такие как C #, могут заменять заполнители указанным типом данных во время компиляции. Он используется для создания классов и методов общего назначения. При определении универсального класса программист должен использовать угловые скобки (). Эти скобки объявляют класс или метод как универсальный тип.
Что такое Hashtable
Hashtable - это структура данных, которая реализует абстрактный тип данных ассоциативный массив, структуру, которая может отображать ключи в значения. Это не общий тип данных. Обратитесь к фрагменту кода следующим образом.
Рисунок 1: Программа C # с Hashtable
В приведенной выше программе числа - это объект типа Hashtable. Пары ключ-значение добавляются в хеш-таблицу. От операторов 15 до 17 ключи имеют тип int, а значения имеют тип string. В заявлении 18 ключ и значение являются строками. Hashtable - это структура данных с еженедельной типизацией. Следовательно, программист может добавлять ключи и значения любого типа в Hashtable.
Рисунок 2: Выходные данные программы HashTable
Результат программы такой же, как указано выше. Hashtable не печатает записи в соответствии с порядком добавления элементов. Следовательно, он не поддерживает вставленный порядок.
Что такое словарь
Словарь использует концепцию Hashtable. Это общий тип данных. Обратитесь к программе ниже. names - это объект типа Dictionary. Он имеет определенные типы данных для хранения ключей и значений. Согласно этой программе универсальные типы определяются как. Поэтому при добавлении элементов в словарь и ключи, и значения должны быть строкового типа.
Рисунок 3: Программа C # со словарем
Все элементы, добавленные в приведенный выше словарь, имеют пары ключ и значение типа String. Вывод ключей и значений на консоль даст результат, аналогичный показанному на рисунке 4. При извлечении элементов из словаря записи будут распечатаны в том же порядке, в каком были добавлены элементы. Следовательно, он поддерживает вставленный порядок.
Рисунок 4: Вывод программы словаря
В целом Dictionary выполняется быстро, но не обеспечивает потокобезопасность.
Разница между хеш-таблицей и словарем
Определение
Hashtable - это структура данных, которая реализует абстрактный тип данных ассоциативный массив, структуру, которая может отображать ключи в значения. Словарь - это структура данных, основанная на Hashtable, в которой значения хранятся на основе ключей.
Добавление элементов
Кроме того, Hashtable - это слабо типизированная структура данных. Таким образом, программист может добавлять ключи и значения любого типа объекта в Hashtable. Словарь - это строго типизированная структура данных. (
Тип
Кроме того, Hashtable не является универсальным, в то время как Dictionary является универсальным типом.
Скорость исполнения
Кроме того, в Hashtable есть бокс и распаковка, но не в Dictionary. Словарь потребляет минимум памяти и выполняется быстрее, чем Hashtable.
Получение элементов
Получение элементов в Hashtable не поддерживает вставленный порядок. С другой стороны, при извлечении элементов из Словаря сохраняется порядок вставки.
Безопасность потоков
Пример синтаксиса
Hashtable ht = новый Hashtable ();
Dictionary dictionary = новый словарь ();.
Заключение
Разница между Hashtable и Dictionary заключается в том, что Hashtable представляет собой слабо типизированную структуру данных, поэтому можно добавлять ключи и значения любого типа, в то время как Dictionary представляет собой строго типизированную структуру данных, поэтому можно добавлять только те элементы, которые удовлетворяют указанным типы данных как для ключа, так и для значения.
Ссылка:
1. «Класс C # Hashtable». Www.tutorialspoint.com, Tutorials Point, 21 июля 2018 г., доступно здесь 2. «C # Hashtable». Типы данных в C #, Учебники для учителя. Доступно здесь 3. «Словарь C # - Javatpoint». Www.javatpoint.com, доступен здесь.