Что такое Объект?

Рассмотрим библиотеку, полную книг, книги отсортированы по алфавиту или по номерам в своих разделах. Мы можем назвать эту аналогию нашим объектом,который в программировании объектами является комбинацией переменных, функций и структур данных. Принимая во внимание, что объекты могут хранить значения, манипулировать значениями и объединять их в более сложные объекты, такие как массивы, и при этом обеспечивать все те же преимущества. Но существуют существенные ограничения в отношении ключей объектов. Единственными возможными ключами являются целые числа, строки и символы. Напротив, хэш-карты более гибкие и представляют собой другой тип структуры данных со своими преимуществами и правилами. Соответственно, мы можем рассматривать хэш-карты как книги любого типа, литературные произведения или значения, которые можно разместить на любой полке в библиотеке. Не беспокойтесь, мы углубимся в понимание ключевых различий, использования и концепций.

Что такое HashMap?

Структура данных HashMap сопоставляет значения ключей со связанными с ними значениями с помощью хеш-функции. Кроме того, хеш-таблица или хэш-карта — это структура данных, которая реализует абстрактный тип данных ассоциативного массива, структуру, которая может отображать ключи в значения. Каждый ключ связан со значением, поэтому вы можете найти значение с помощью ключа. Кроме того, как уже говорилось, гибкостьHashmap намного выше, чем у объектов. В качестве ключа в хэш-карте можно использовать любой тип данных, включая массивы, строки, целые числа и даже объекты. Как показано на изображении, давайте кратко рассмотрим темы хеширования.

Одним из наиболее важных аспектов хэш-карт является хеш-функция, которая возвращает строку байтов фиксированного размера при вводе данных. Несмотря на то, что коллизия хэшей возникает очень редко, когда два входа дают одно и то же значение хеш-функции, когда оба входа дают один и тот же результат, так как все ключи направляются в свои собственные уникальные хранилища. Как видно, хэш-функции обычно используются с хеш-таблицами для быстрого поиска записи данных на основе ее ключа поиска.

Что такое частотомер и его назначение?

Теперь мы понимаем базовое понимание объектов и хэш-карт. Я хочу объяснить паттерн под названием Счетчик частоты. Это очень полезно, потому что собирает значения и вычисляет их частоту, используя объект или набор. Используя этот шаблон, вы можете избежать вложенных циклов (квадратичная временная сложность O(n2)) при работе с массивами или строками.

Вот пример заданного массива целых чисел, как показано [5, 2, 7, 7, 5, 5, 2]

Целью счетчика частоты является отслеживание, как показано, при повторении списка элементов и обновлении каждый раз, когда соответствующее значение появляется снова. В результате осталось 3 раза 5, 2 раза 7 и 2 дважды. Надеюсь, что эта концепция кажется достаточно простой сейчас.

Использование частотомера с объектами

Этапы счетчика частоты объектов:

Шаг 1. Сначала мы инициализируем переменную пустым объектом.

Шаг 2. Затем, используя обычный цикл for, я перебрал список элементов.

Шаг 3. Далее следует настроить условные операторы, которые помогут нам создавать и обновлять хранилище пар ключей и значений.

Шаг 3.1. Если пары "ключ-значение" объекта не существует, ТО...

Шаг 3.2. Сначала мы установим значение ключа по умолчанию равным 1. ИНАЧЕ…

Шаг 3.3. Если тот же ключ появится снова, мы снова увеличим +1 до его значения.

Шаг 4. Наконец, верните переменную, содержащую наш объект

Использование частотомера на карте объектов HashMap:

Этапы счетчика частоты HashMap:

Шаг 1. Сначала мы инициализируем переменную для создания экземпляра нового объекта карты.

Шаг 2. Затем снова, используя обычный цикл for, я перебрал список элементов.

Шаг 3. После этого необходимо настроить условные операторы так же, как и раньше, мы ПРОВЕРЯЕМ…

Шаг 3.1. Но на этот раз с помощью метода карты (has), чтобы проверить, соответствует ли пара ключ-значение объекта не существует, мы ТОГДА…

Шаг 3.2. Установите значение ключа по умолчанию равным 1, используя метод setили ДАЛЕЕ…

Шаг 3.3. Используя метод сопоставления, настройтеснова для обновления, если ключ повторно появляетсязатем мы снова увеличим +1 до его значения

Шаг 4. Наконец, верните переменную, содержащую наш объект

Объекты и счетчик частоты HashMap

Глядя на оба фрагмента, какие сходства и различия вы видите в том, как мы их закодировали? Хотя логика и шаги одинаковы, отдельный вывод выглядит иначе, поскольку он возвращает его несортированным по сравнению с объектами. Hashmap также имеет много полезных методов и свойств, которые следует учитывать. При решении проблемы вам может понадобиться использовать как объекты, так и хэш-карты, в зависимости от того, хотите ли вы, чтобы выходные данные были отсортированы или нет. И объекты, и хэш-карты предоставляют полезные инструменты для хранения и извлечения данных, но их эффективность зависит от ситуации. Теперь давайте больше узнаем о том, что может предоставить нам карта объектов HashMap.

HashMaps (методы/свойства):

  1. map.size() возвращает количество элементов в хэш-карте.
  2. map.get(‹key›)возвращает значение элемента данного ключа
  3. map.has(‹key›) проверяет, содержит ли хэш-карта ключ, который передается в качестве аргумента.
  4. map.set(‹key›, ‹value›)принимает 2 аргумента и создает новыйэлемент для хэш-карта
  5. map.delete(‹key›)удаляет пару ключ/значение, которая соответствует ключу, переданному в качестве аргумента.
  6. map.clear()удаляет все элементы из хэш-карты

Объект (методы/свойства):

  1. Object.keys(‹obj›)возвращает массив собственных ключевых свойств данного объекта в массиве, но в паре.length, где в Object.keys (‹obj›).length можно найти длину объекта
  2. Object.values(‹obj›) возвращает массив ключевого свойства данного объекта.
  3. Object.entries(‹obj›) возвращает массив пар ключ-значение данного объекта.
  4. Object.assign(target, …sources) Возвращает измененный целевой объект. Метод копирует все перечисляемые собственные свойства из одного или нескольких исходных объектов в целевой объект и может вставлять новые данные.
  5. Оператор удаления (delete)этот оператор удаляет свойство из объекта
  6. Квадратная запись(['key']) и запись через точку(obj.key):они известны каксредства доступа к свойствам,это обеспечивает доступ к свойствам объекта и, таким образом, может быть полезно, когда вы хотите обновить или добавить данные.

Как вы видите, фрагменты кода демонстрируют, как работают объекты и хэш-карты. Мы можем извлекать, удалять, обновлять и вставлять данные несколькими способами.

Вывод:

Концепция и основная цель объектов и хэш-карт обеспечивают доступность, эффективность, хранение и ссылки на данные. Точно так же, как шаблон частотомера изображал небольшой предварительный просмотр возможностей и сильных сторон хэш-карт и объектов. Хотя они оба имеют много плюсов и минусов, связанных с их использованием в представлении собственных полезных правил и эффектов. Таким образом, при решении проблемы вам может понадобиться или вы захотите определить, что выбрать, в зависимости от того, хотите ли вы, например, чтобы вывод был предварительно отсортирован или нет. В конце концов, вы найдете ключ к решению любых вопросов.