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

Автор: Monica Porter
Дата создания: 17 Март 2021
Дата обновления: 3 Июль 2024
Anonim
14.11 HashMap and HashTable in Java
Видео: 14.11 HashMap and HashTable in Java

Содержание

Основная разница

HashMap и HashTableare являются двумя критическими структурами данных в Java. Они находятся в Collection Framework и имеют мало общего между ними. Хотя они имеют эти сходства, между ними есть некоторые различия. И HashMap, и HashTable хранят данные в форме пар ключ-значение, а также slao реализуют интерфейс Map. Для хранения элементов используется метод хеширования как HashMap, так и HashTable. Поскольку мы должны учесть различия между ними, самое важное различие основано на безопасности потоков. Основные отличия HashMap от HashTable включают в себя нулевые ключи, итерацию значений, синхронизацию. Производительность и класс. HashTable является поточно-ориентированным, в то время как HashMap не является поточно-ориентированным. HashTable синхронизируется внутри, а HashMap не синхронизируется внутри, поэтому HashMap небезопасно использовать в многопоточных приложениях. Производительность HashMap хорошая по сравнению с HashTable, поскольку HashTable синхронизируется внутри. HashMap предпочтительнее HashTable, поскольку HashTable является устаревшим классом и считается устаревшим. HashMap быстр по сравнению с HashTable. С самого начала внедрения HashMap в JDK 1.2 он является членом Java Collection Framework, но до того, как JDK 1.2 уже существует, HashTable был создан для реализации интерфейса Map и стал членом Collection Framework.


Сравнительная таблица

HashMapХеш-таблица
ОпределениеМаксимум один нулевой ключ разрешен HashMap, и любое количество нулевых значений также допускается.Ни допускается ни один нулевой ключ, ни нулевое значение.
ВернутьДля обхода элементов HashMap возвращает только итераторыВозвращает не только Итераторы, но и Перечисление.
Реализацияреализует интерфейс Map, расширяя класс AbstractMapРеализует интерфейс Map, расширяя класс Dictionary.
СинхронизацияЭто не синхронизировано внутриСинхронизируется внутренне

Определение HashMap

HashMap является важной структурой данных в Collection Framework в Java. HashMap не является поточно-ориентированным и не синхронизируется внутри, поэтому HashMap небезопасно использовать в многопоточных приложениях. Но это может быть безопасно для многопоточных приложений, если синхронизировать его внешне с помощью метода Collections.synchronized (). Он реализует интерфейс Map, расширяя класс AbstractMap. Максимум один нулевой ключ разрешен HashMap, и любое количество нулевых значений также допускается. Итератор, возвращаемый HasMap, по своей природе является отказоустойчивым. Производительность HashMap хороша и, следовательно, является быстрой по сравнению с HashTable.


Определение HashTable

HashTable - это важная структура данных в Collection Framework на Java. HashTable является потокобезопасным и синхронизируется внутри. Поэтому его можно использовать в многопоточных приложениях. Он реализует интерфейс Map, расширяя класс Dictionary. Он не допускает ни одного нулевого ключа, ни нулевого значения. HashTable - это устаревший класс, который считается устаревшим. Перечисления, возвращаемые HashTable, по своей природе являются отказоустойчивыми.

Различия в двух словах

  1. HashTable является поточно-ориентированным, в то время как HashMap не является поточно-ориентированным.
  2. HashTable синхронизируется внутри, а HashMap не синхронизируется внутри.
  3. И HashMap, и HashTable реализуют интерфейс Map, но они оба расширяют различные классы. HashMap реализует интерфейс Map, расширяя класс AbstractMap, в то время как HashTable реализует интерфейс Map, расширяя класс Dictionary.
  4. HashMap допускает максимум один нулевой ключ, и любое количество нулевых значений также допускается, в то время как HashTable не допускает ни одного нулевого ключа, ни нулевого значения.
  5. Для обхода элементов HashMap возвращает только итераторы, в то время как HashTable возвращает не только итераторы, но и перечисление.
  6. Итератор, возвращаемый HasMap, по своей природе является отказоустойчивым, а перечисление, возвращаемое HashTable, по своей природе является отказоустойчивым.
  7. HashMap быстр по сравнению с HashTable.
  8. HashTable медленный по сравнению с HashMap.
  9. Производительность HashMap хорошая по сравнению с HashTable, поскольку HashTable синхронизируется внутри.
  10. HashMap предпочтительнее HashTable, так как HashTable является устаревшим классом и считается подлежащим амортизации.
  11. С самого начала внедрения HashMap в JDK 1.2 он является членом Java Collection Framework, но до JDK 1.2 HashTable уже был там, а в JDK 1.2 он был реализован для реализации интерфейса Map и стал членом Collection Framework.

Заключение

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


одобрять Пустое подтверждение финансового инструмента, такого как чек, является только подписью, без указания получателя. Эффект этого состоит в том, что он подлежит оплате только предъявителю - юри...

Основное различие между грязью и песком в том, что Грязь - нечистое дело а также гранулированный материал, состоящий из мелкодисперсных частиц породы и минералов, частицы песка имеют диаметр от 0,063 ...

Увлекательные посты