Определения:
Идемпотент - обозначает элемент набора, значение которого не изменяется при умножении или другом действии сам по себе.

Если вы знакомы с JavaScript, вы, скорее всего, называете хеш-таблицы объектами, в Ruby они называются хешами, а в Python - словарями. Хотя как этого добиться? Мы можем создавать объекты, подобные приведенному ниже, с помощью хэш-функции.
Хеш-функция переваривает синтаксис, выделяет память со связанным адресом, известным как ключ, и хранит значение.
Когда мы хотим установить ключ, например myObject.name, хеш-функция сгенерирует что-то вроде этого 18697449d7c48cf32cdd4f14857e68ee. Это невозможно отменить или изменить каким-либо образом. Этот процесс известен как идемпотент, что в основном означает, что один и тот же ввод будет иметь одинаковый вывод. Вы можете проверить это сами, если хотите. Перейдите сюда, выберите генератор хэшей md5 и введите имя для строки, и я гарантирую, что вы увидите это как результат 18697449d7c48cf32cdd4f14857e68ee. Генераторы хэшей полезны, потому что, в отличие от массивов, нам не нужно ничего перебирать, чтобы получить значение. Мы получаем доступ к объекту, который хотим, используя связанный ключ к этому значению, что даст нам высокоскоростной вывод.
Хеш-таблицы могут быть удобны при написании алгоритмов, например, мы должны сравнивать массивы, и мы хотим проверить, существуют ли какие-либо элементы в массиве внутри другой коллекции.
Мы можем минимизировать количество операций, в которых будет выполняться функция. Большим О для этого будет O (n), потому что по мере увеличения данных количество операций для завершения выполнения функции также будет увеличиваться. Без hashMap, как я его называю, нам пришлось бы создать вложенный цикл for-, который увеличил бы количество операций до O (n * 2) или O (a * b) в зависимости от размера каждого входа.
Надеюсь, это поможет прояснить ваше понимание того, что такое хеш-таблицы и как мы можем их использовать. Если у вас проблемы со структурами данных и вы хотите узнать, как вы можете улучшить их использование. Я настоятельно рекомендую вам пройти курс Андрей Нэгой по освоению собеседования по кодированию. Это отличный ресурс, и он мне очень помог. Он более подробно описывает большинство тем, о которых я веду блог, и является одним из моих основных источников образования по структурам данных.