Разница между HashMap и HashTable

Основное различие: в информатике, hashTable или hashMap относится к структуре данных, которая связывает ключи (имена) со значениями (атрибутами). В Java есть несколько важных различий между ними: HashTable синхронизирован, а HashMap несинхронизирован. HashTable не допускает нулевые ключи. Однако HashMap допускает один нулевой ключ и любое количество нулевых значений.

HashMap и hashTable являются структурами данных, которые являются частью коллекции Java. Они используют пары ключ-значение для хранения объектов. Оба они имеют некоторые общие черты, например, оба реализуют интерфейс java.util.Map, и оба работают по принципу хеширования. Тем не менее, когда мы ссылаемся на них в контексте языка программирования Java, между ними есть многочисленные различия.

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

Как и hashTable, hashMap также работает на тех же принципах хеширования. Его можно рассматривать как реализацию интерфейса Map на основе хеш-таблицы. Однако он отличается от хэш-таблицы несколькими пунктами. HashMap не синхронизирован, а hashTable синхронизирован. Синхронизация означает, что во время частицы только один поток может изменить таблицу. Таким образом, чтобы выполнить операцию обновления для hashTable, необходимо получить блокировку для таблицы. В течение этого времени другие потоки должны ждать. После разблокировки другие потоки могут продолжаться и работать на столе. Другое важное различие между ними состоит в том, что hashTable не допускает нулевой ключ. Однако hashMap допускает один нулевой ключ и любое количество нулевых значений.

Сравнение между HashMap и HashTable:

HashMap

Хеш-таблица

синхронизация

Это не синхронизировано

Это синхронизировано (потокобезопасно)

Нулевые значения

Это разрешает нулевые значения как ключ и значение

Это не разрешает нули

Введение в Java

Java версия 1.2

Первая версия комплекта разработчика Java

Спектакль

Сравнительно лучше

Сравнительно бедный

Расширяет

Расширяет класс AbstractMap

Это расширяет класс Dictionary, который довольно старый

Итерация ключей

Итератор используется для итерации ключей

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

Приложения

Лучше для непоточных приложений

Как правило, безопасно для многопоточных приложений

Сериализация

Не сериализовано

Serialized

альтернатива

Можно использовать одновременный hashMap для многопоточной среды

Нет такой альтернативы

Рекомендуем

Похожие статьи

  • разница между: Разница между NiCad, NiMH и литиевой батареей

    Разница между NiCad, NiMH и литиевой батареей

    Ключевое отличие: NiCad означает никель-кадмий, а NiMH - никель-гидридный металл. Оба используют гидроксид оксида никеля (NiOOH) в качестве положительного электрода. Есть много различных типов батарей, которые используют литий в качестве положительного электрода, наиболее распространенными типами литиевых батарей являются литий-ионные и литий-полимерные батареи. Литий-ионные аккумуляторы наиболее популярны среди трех. NiCad, NiMH и литиевые батареи являются тремя из наиболее часто используемых батарей сегодня. Они используются во всем - от обычных карандашных ячеек AA или AAA до таких устройств
  • разница между: Разница между коммерческим и инвестиционным банками

    Разница между коммерческим и инвестиционным банками

    Основное отличие: коммерческие банки обслуживают население и предоставляют такие услуги, как прием депозитов, предоставление кредитов и других основных инвестиционных продуктов. Инвестиционные банки - это финансовые учреждения, которые помогают частным лицам, корпорациям и правительствам в привлечении финансового капитала, подпи
  • разница между: Разница между Sony Xperia L и Samsung Galaxy S3

    Разница между Sony Xperia L и Samsung Galaxy S3

    Ключевое отличие: Sony Xperia L - смартфон среднего класса. Он имеет 4, 3-дюймовый экран с разрешением 854x480 пикселей и устойчивое к царапинам защитное стекло. Он работает на Android 4.1 с двухъядерным чипсетом Qualcomm MSM8230 с тактовой частотой 1 ГГц и 1 ГБ оперативной памяти. Samsung Galaxy S3 - это мул
  • разница между: Разница между Nokia Lumia 920 и LG Optimus G

    Разница между Nokia Lumia 920 и LG Optimus G

    Ключевое отличие: Одним из первых смартфонов под брендом является Nokia Lumia 920. Nokia Lumia 920 был одним из первых телефонов, разработанных для Windows Phone 8. Он был выпущен в ноябре 2012 года в качестве своего флагманского телефона. Популярной серией смартфонов от LG Electronics является LG Optimus. Некоторые из новых телефонов этой марки включают LG Optimus G, LG Optimus L5, LG Opti
  • разница между: Разница между альфа и бета-тестированием

    Разница между альфа и бета-тестированием

    Ключевое отличие: Альфа-тестирование - это первый этап тестирования программного обеспечения после разработки. Бета-тестирование проводится после того, как программа проходит альфа-тестирование. Процесс разработки любого приложения включает в себя серию тщательного тестирования, чтобы убедиться, что программа соответствует требованиям и не имеет ошибок, кото
  • разница между: Разница между CAST и CONVERT

    Разница между CAST и CONVERT

    Основное различие: CAST и CONVERT - это две функции, которые являются частью сервера SQL. Обе эти функции позволяют пользователю преобразовывать выражения из одного формата в другой. CAST и CONVERT - это две функции, которые являются частью сервера SQL, который является системой управления реляционными базами данных (
  • разница между: Разница между Nokia Lumia 520 и Samsung Galaxy Grand

    Разница между Nokia Lumia 520 и Samsung Galaxy Grand

    Ключевое отличие: Nokia Lumia 520 - это 4-дюймовый IPS емкостный сенсорный смартфон с разрешением 480x800 пикселей и разрешением около 233 ppi. Телефон поставляется с 8 ГБ встроенной памяти, которая может быть расширена до 64 ГБ. Телефон предлагает 1 ГГц на двухъядерном Snapdragon S4 и всего 512 МБ оперативной памяти, что немного разочаровывает. Samsung Galaxy Grand - смартфон сред
  • разница между: Разница между разработчиком программного обеспечения и разработчиком программного обеспечения

    Разница между разработчиком программного обеспечения и разработчиком программного обеспечения

    Ключевое отличие: разработчик программного обеспечения - это человек, занимающийся аспектами процесса разработки программного обеспечения. Их работа включает в себя разработку, внедрение и тестирование программного обеспечения. Инженер-программист, с другой стороны, является практиком разработки программного обеспечения. Они применяют инженерные принципы к проектированию, разработке, обслуживанию, тестированию и оценке
  • разница между: Разница между Chromecast и Amazon Fire TV Stick

    Разница между Chromecast и Amazon Fire TV Stick

    Ключевое отличие: Chromecast и Amazon Fire TV Stick - два самых популярных устройства потокового видео, доступных на рынке. Chromecast разработан и запущен Google и, следовательно, имеет безупречную поддержку приложений Google, таких как Youtube, Google Play Movies. Будучи продуктом Amazon, Amazon Fire в первую очередь продвигает контент Amazon. В современном технологическом веке все продвинуто вперед. Настолько

Выбор редакции

Разница между Spice Stellar Pinnacle Pro и Micromax A116 Canvas HD

Ключевое отличие: Spice Stellar Pinnacle Pro Mi-535 - это бюджетный четырехъядерный телефон среднего класса со скоростью 1, 2 ГГц. Он работает под управлением Android 4.2 Jelly Bean и оснащен 1 ГБ оперативной памяти. Телефон оснащен 8 Мп камерой с автофокусом и светодиодной вспышкой. Телефон также оснащен 5-мегапиксельной фронтальной широкоу