Оба класса HashMap и Hashtable реализуют интерфейс Map и поэтому имеют очень схожие характеристики. Однако они отличаются следующими особенностями:
- HashMap допускает существование нулевых ключей и значений, тогда как Hashtable не допускает ни нулевых ключей, ни нулевых значений.
- Hashtable синхронизируется, а HashMap — нет. Таким образом, HashMap предпочтителен в однопоточных средах, а Hashtable подходит для многопоточных сред.
- HashMap предоставляет свой набор ключей, и приложение Java может их перебирать. Таким образом, HashMap является отказоустойчивым. С другой стороны, Hashtable предоставляет перечисление своих ключей.
- Класс Hashtable считается устаревшим классом.
Итог
Ключевой вывод для интервью: какие различия существуют между HashMap и Hashtable?