Разница между хеш-таблицей и словарем

Оглавление:

Anonim

В главное отличие между 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, доступен здесь.

Разница между хеш-таблицей и словарем