[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-collections-zachem-nuzhen-hashmap-esli-est-hashtable":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":18,"progress":19,"seo":20},467,"zachem-nuzhen-hashmap-esli-est-hashtable",12,"collections","Collections","📚","Зачем нужен HashMap, если есть Hashtable","`HashMap` был добавлен в Java 1.2 как несинхронизированная замена `Hashtable`, по тем же причинам, что и ArrayList для Vector.\n\n| Характеристика | HashMap | Hashtable |\n|---|---|---|\n| Синхронизация | Нет | Все методы synchronized |\n| null-ключ | Допускает (один) | Не допускает (NPE) |\n| null-значение | Допускает (любое кол-во) | Не допускает (NPE) |\n| Итератор | fail-fast (Iterator) | Enumeration + Iterator |\n| Версия Java | 1.2 (JCF) | 1.0 (legacy) |\n| Производительность | Быстрее | Медленнее |\n| Статус | Рекомендуется | Устаревший |\n\nHashtable — устаревший класс, его использование не рекомендовано. Для потокобезопасного ассоциативного массива следует использовать `ConcurrentHashMap`, который обеспечивает лучшую масштабируемость за счет сегментной блокировки (в Java 8+ — блокировки на уровне корзин).\n\n> **На собеседовании:** назовите три отличия: синхронизация, null, fail-fast. Упомяните ConcurrentHashMap как правильную потокобезопасную альтернативу.","","junior",[15,16,17],"performance","jcf","concurrency",[],null,{"title":21,"description":22,"ogTitle":23,"ogDescription":24,"keywords":25,"schemaAnswer":34,"featuredSnippetReady":35},"HashMap vs Hashtable — зачем нужен HashMap — Gymterview","HashMap vs Hashtable: синхронизация, null-ключи\u002Fзначения, fail-fast. Hashtable устарел, для потокобезопасности — ConcurrentHashMap.","HashMap vs Hashtable — Gymterview","HashMap: без синхронизации, допускает null, fail-fast Iterator. Hashtable устарел → ConcurrentHashMap.",[26,27,28,29,30,31,32,33],"HashMap","Hashtable","synchronized","null","fail-fast","ConcurrentHashMap","Java","собеседование","HashMap не синхронизирован (быстрее), допускает null-ключ и null-значения, использует fail-fast Iterator. Hashtable синхронизирован, не допускает null. Hashtable устарел; для потокобезопасности — ConcurrentHashMap.",true]