Sobes.tech
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);