Junior — Middle
124
Expliquez les différences entre les classes HashMap et Hashtable et dans quels cas il est préférable d'utiliser l'une ou l'autre.
Entreprises à qui on a demandé
Ви6 Сервисес
Réponse de l'IA
sobes.tech IA
HashMap и Hashtable — это реализации интерфейса Map в Java, но между ними есть ключевые отличия:
-
Синхронизация: Hashtable синхронизирован (thread-safe), что делает его медленнее в однопоточных приложениях. HashMap не синхронизирован, поэтому быстрее, но не безопасен для многопоточного доступа без внешней синхронизации.
-
Поддержка null: HashMap позволяет использовать один null-ключ и несколько null-значений. Hashtable не допускает null ни в ключах, ни в значениях.
-
Наследование: Hashtable — устаревший класс, наследуется от Dictionary, а HashMap — от AbstractMap.
Когда использовать:
- Если нужна потокобезопасность без дополнительной синхронизации, можно использовать Hashtable, но лучше современные альтернативы (ConcurrentHashMap).
- Для большинства случаев, особенно в однопоточных приложениях, предпочтительнее HashMap из-за лучшей производительности и гибкости.
Пример использования HashMap:
Map<String, Integer> map = new HashMap<>();
map.put(null, 1); // допустимо
map.put("key", 2);