Содержание
- Основная разница
- Сравнительная таблица
- Определение HashMap
- Определение HashTable
- Различия в двух словах
- Заключение
Основная разница
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, по своей природе являются отказоустойчивыми.
Различия в двух словах
- HashTable является поточно-ориентированным, в то время как HashMap не является поточно-ориентированным.
- HashTable синхронизируется внутри, а HashMap не синхронизируется внутри.
- И HashMap, и HashTable реализуют интерфейс Map, но они оба расширяют различные классы. HashMap реализует интерфейс Map, расширяя класс AbstractMap, в то время как HashTable реализует интерфейс Map, расширяя класс Dictionary.
- HashMap допускает максимум один нулевой ключ, и любое количество нулевых значений также допускается, в то время как HashTable не допускает ни одного нулевого ключа, ни нулевого значения.
- Для обхода элементов HashMap возвращает только итераторы, в то время как HashTable возвращает не только итераторы, но и перечисление.
- Итератор, возвращаемый HasMap, по своей природе является отказоустойчивым, а перечисление, возвращаемое HashTable, по своей природе является отказоустойчивым.
- HashMap быстр по сравнению с HashTable.
- HashTable медленный по сравнению с HashMap.
- Производительность HashMap хорошая по сравнению с HashTable, поскольку HashTable синхронизируется внутри.
- HashMap предпочтительнее HashTable, так как HashTable является устаревшим классом и считается подлежащим амортизации.
- С самого начала внедрения HashMap в JDK 1.2 он является членом Java Collection Framework, но до JDK 1.2 HashTable уже был там, а в JDK 1.2 он был реализован для реализации интерфейса Map и стал членом Collection Framework.
Заключение
Компьютерная архитектура - это то, что является загадкой для людей, которые являются обычными пользователями и не имеют подробных знаний об этом. Два термина HashMap и HashTable похожи, которые считаются одинаковыми, но различаются по работе и функциям. Следовательно, эта статья дает правильное понимание двух типов, чтобы люди могли получить более ясное представление.