HashMap в Java

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

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

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

Объекты хранятся путем вызова метода put (ключ, значение) HashMap и извлекаются вызовом метода get (key).

Как работает hashmap Java?

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

Как работает hashmap Java

В HashMap имеется ряд «ведер», которые он использует для хранения пар ключ-значение. Ведро используется для хранения нескольких пар значений ключа. В хэш-карте ведро использует простой связанный список для хранения объектов. Каждое ведро имеет уникальный номер, это то, что идентифицирует ведро. Когда вы кладете (ключ, значение) в карту, хэш-файл будет смотреть на хэш-код ключа и хранить пару в ведре, идентификатором которого является хэш-код ключа. Например, хеш-код ключа равен 512, эта пара хранится в байтовом числе 512. Если есть какое-либо столкновение, HashMap использует LinkedList для хранения объекта. Важно отметить, что в одном ковше может храниться более одной пары ключ-значение.

Когда вы просматриваете значение в хэшмапе, давая ему ключ (get (ключ)), хэш-код определяет, какое ведро для хэш-карты нужно проверить. Сначала будет рассмотрен хэш-код ключа, который вы дали. Затем хешмап заглянет в соответствующее ведро, а затем сравним ключ, который вы дали с ключами всех пар в ковше, сравнивая их с equals(). Если в ковше имеется более одного объекта, то выполняется линейный поиск, чтобы найти, какой элемент в ковше равен требуемому элементу, используя метод equals().

Как добавить элементы в Hashmap?

Как получить размер Java HashMap?

Метод size() используется для возврата числа сопоставлений значений ключа на этой карте.

Вывод:

Как перебирать элементы в Hashmap?

Существует несколько способов просмотра элементов в Hashmap.

Используйте функцию entrySet() для итерации по карте и нужно получить доступ к значению и ключу:

Вывод:

Использование для цикла:

Вывод:

Использование итератора и Map.Entry:

Вывод:

Использование foreach и Map.Entry:

Вывод:

Использование цикла while:

Удаление записей из HashMap

Метод remove() используется для удаления сопоставления для указанного ключа с этой карты, если он присутствует.

Вывод:

Удалить все значения из Java HashMap

Вывод:

Как выполнить поиск ключа в HashMap?

Используя метод containsKey(), вы можете узнать о существовании ключа.

Вывод:

Как получить ключ от значения в HashMap?

Вывод:

Следующая Java-программа иллюстрирует весь вышеупомянутый метод в одной программе

Различия между HashMap и Hashtable

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

    Различия между HashMap и Hashtable

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

      Источник: http://net-informations.com/Java/col/hashmap.htm

      1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector