Junior — Middle
120
Leg het verschil uit tussen de klassen HashMap en Hashtable en in welke gevallen het het beste is om elk van hen te gebruiken.
Bedrijven waar gevraagd werd
Ви6 Сервисес
Antwoord van AI
sobes.tech AI
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);