Junior — Middle
117
Erklären Sie die Unterschiede zwischen den Klassen HashMap und Hashtable und in welchen Fällen es vorzuziehen ist, jede von ihnen zu verwenden.
Unternehmen wurden gefragt
Ви6 Сервисес
Antwort von AI
sobes.tech KI
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);