Sobes.tech
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");