Junior — Middle
V čem se kolekce HashMap a Hashtable liší v způsobu implementace a vlastnostech?
sobes.tech AI
Odpověď od AI
HashMap a Hashtable jsou implementace rozhraní Map v Javě, ale mají několik rozdílů:
-
Synchronizace: Hashtable je synchronizovaná (vlákna bezpečná), což ji činí pomalejší v prostředí s více vlákny. HashMap není synchronizovaná, takže je rychlejší, ale není bezpečná pro vícevláknový přístup bez externí synchronizace.
-
Povolení null: HashMap umožňuje jedno null klíč a více null hodnot. Hashtable null klíče a null hodnot nepřipouští.
-
Dědičnost: Hashtable je starší třída, dědí z Dictionary, zatímco HashMap dědí z AbstractMap.
-
Použití: V moderních aplikacích je vhodnější používat HashMap, a pokud je potřeba synchronizace, použít ConcurrentHashMap nebo externí synchronizaci HashMap.
Příklad použití HashMap:
Map<String, Integer> map = new HashMap<>();
map.put("key", 1);
Integer hodnota = map.get("key");