Sobes.tech
Junior — Middle
112

Explicați diferențele dintre clasele HashMap și Hashtable și în ce cazuri este preferabil să folosiți fiecare dintre ele.

Companiile au fost întrebate
Ви6 Сервисес

Răspuns de la 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);