В этой серии структур данных я собираюсь обсудить некоторые основные структуры данных; их реализация и внутренняя работа. Сегодня мы начнем с любимой в отрасли структуры данных HashMap. Мы обсудим, что это такое, почему это предпочтительнее и как это реализовать.
Что такое HashMaps?
Карты, словари и ассоциативные массивы описывают один и тот же тип данных, также известный как структура данных хеш-таблицы. Хеш-таблица – это структура данных, которая сопоставляет ключи со значениями.
Чем они быстрее, чем массивы? Рассматривайте свой HashMap как ящик, в котором хранятся вещи и маркируются.

В этом примере, если вы ищете игрушку, вам не нужно открывать ящики 1 и 3. Вы идете прямо к контейнеру с надписью «Игрушки». Время поиска увеличивается с O(n) до O(1). В массивах на данные ссылаются с помощью индекса, тогда как для HashMaps мы можем использовать строку, число, объект или что-то еще.
Внутри HashMap использует массив и сопоставляет метки с индексами массива с помощью хеш-функции. Мы рассмотрим способы реализации HashMaps позже в этой серии.
Почему использование HashMap предпочтительнее массивов?
- Поиск в массиве - это O (n), а в HashMap - O (1).
- Массивы могут иметь повторяющиеся значения, в то время как HashMaps не могут иметь повторяющиеся ключи.
- Массивы имеют ключ (индекс), в то время как в HashMap вы можете управлять ключом, и он может быть строкой или числом.
Теперь перейдем к нашей основной теме: является ли объект HashMap в JS? Для этого мы должны знать, что такое объект в JS.
Объект в JS:
Объект — это непримитивный тип данных в JS, однако его ключ должен быть примитивным типом данных, таким как строка, целое число. Объект JavaScript содержит несколько значений в виде свойств и методов прототипа. Однако в JS объект — это довольно широкий термин, почти все может быть объектом.
Теперь по определению Object и Map основаны на одной и той же концепции — использовании пары "ключ-значение" для хранения данных.
Другой тип создания объекта в JS:
В JS используются 3 типа создания объектов:
- Через литерал объекта (фигурные скобки)
(i) Просто создав фигурные скобки, мы можем создать пустой объект - Использование конструктора
- Использование метода object.create
Создание карты:
- HashMap — это структура данных, реализованная ES6 в JS.
- У него есть пара ключ-значение, и в обоих случаях мы можем использовать непримитивный тип данных для хранения данных.
- В Map сохраняется первоначальный порядок элементов там, где подобный случай неверен в объектах.
Из приведенных выше отличий и его реализации с помощью кода мы видим, что способ объявления, доступа к элементам, проверки, существует ли уже ключ, и добавления нового элемента отличается, мы можем легко понять, что недостатком объектов является то, что они могут использовать только ключи. быть строкой или числом. При создании объекта с пустым литералом, например, let obj = {}, он автоматически наследуется от Object.prototype.
Итак, объект не является хэш-картой в Javascript, потому что объект также может наследоваться от прототипов. Map является экземпляром объекта, но наоборот неверно. Таким образом, каждый HashMap является объектом, но не каждый объект является HashMap. В JS объект — это больше, чем просто хеш-таблица.
Заключение
Это действительно зависит от того, с каким типом данных вы работаете и какие операции вы собираетесь с ними выполнять, чтобы предпочесть одно другому между Картой или Объектом.
Пожалуйста, подпишитесь на меня, чтобы узнать больше: SalehaShujaat786