HashMap и Hashtable — это реализации интерфейса Map в Java, но имеют несколько отличий:
Чем отличаются коллекции HashMap и Hashtable по способам реализации и характеристикам?
HashMap и Hashtable — это реализации интерфейса Map в Java, но имеют несколько отличий:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
HashMap и Hashtable — это реализации интерфейса Map в Java, но имеют несколько отличий:
- Синхронизация: Hashtable синхронизирован (thread-safe), что делает его медленнее в многопоточной среде. HashMap не синхронизирован, поэтому быстрее, но не безопасен для многопоточного доступа без внешней синхронизации.
- Разрешение null: HashMap позволяет использовать один null-ключ и несколько null-значений. Hashtable не допускает null-ключи и null-значения.
- Наследование: Hashtable — более старый класс, наследуется от Dictionary, а HashMap — от AbstractMap.
- Использование: В современных приложениях предпочтительнее использовать HashMap, а при необходимости синхронизации — ConcurrentHashMap или внешнюю синхронизацию HashMap.
Пример использования HashMap:
Map<String, Integer> map = new HashMap<>();
map.put("key", 1);
Integer value = map.get("key");