Существует абстрактная структура данных, которая содержит отображение между ключами и значениями. У него есть несколько разных имен, включая Map
, Dictionary
, Table
, Association Table
и другие.
Самыми основными операциями, которые должны поддерживаться этой структурой данных, являются добавление, удаление и извлечение значения с учетом связанного с ним ключа. Существуют варианты и дополнения этой базовой концепции - например, некоторые структуры поддерживают итерации по всем парам ключ-значение, некоторые структуры поддерживают несколько значений на ключ и т. Д. Кроме того, между различными реализациями существует разница во времени и пространстве.
Из множества реализаций, доступных для этой структуры данных, некоторые из наиболее популярных используют хеш-функции для быстрого времени доступа. Эти реализации иногда называют по имени Hash Table
или Hash Map
, вы можете прочитать о них в Википедии . Производительность также варьируется между реализациями хеш-таблиц, при этом некоторые достигают амортизации вставки O (1) и сложности доступа (по цене большого количества используемого пространства).
A список хэшей , с другой стороны, это совсем другое, и больше касается использования структуры данных, чем ее фактических структур. Список хешей обычно представляет собой обычный список значений хешей, ничего особенного в этом нет. Он используется при проверке целостности большого фрагмента данных - в этом случае он позволяет независимо проверять различные фрагменты данных, позволяя исправлять или извлекать только плохие фрагменты. Это в отличие от использования одного хеш-значения для хеширования всего фрагмента данных, в этом случае сбой означает, что все данные должны быть исправлены или восстановлены снова.