Чем отличаются HashMap и Hashtable?

Junior
313 просмотров
AFK Offer AI

Hashtable — legacy-класс из Java 1.0, synchronized на каждый метод (медленно), не допускает null ключей и значений. HashMap — не синхронизирован, допускает один null-ключ и любое количество null-значений, быстрее. Для многопоточности используй ConcurrentHashMap, не Hashtable — он блокирует всю таблицу на каждую операцию. Hashtable ещё наследует Dictionary (устаревший класс). Итератор HashMap — fail-fast, Hashtable — тоже fail-fast (Enumeration — нет). Вывод: Hashtable не используй, это легаси.

Следующий вопрос

Напишите producer-consumer с BlockingQueue