Sobes.tech
Junior — Middle

Aké sú rozdiely medzi kolekciami HashMap a Hashtable z hľadiska spôsobu implementácie a vlastností?

sobes.tech AI

Odpoveď od AI

HashMap a Hashtable sú implementácie rozhrania Map v Jave, ale majú niekoľko rozdielov:

  • Synchronizácia: Hashtable je synchronizovaná (vlákna bezpečná), čo ju robí pomalšou v prostredí s viacerými vláknami. HashMap nie je synchronizovaná, takže je rýchlejšia, ale nie je bezpečná pre viacvláknový prístup bez externej synchronizácie.

  • Povolenie null: HashMap umožňuje jeden null kľúč a viac null hodnôt. Hashtable null kľúče a null hodnoty nepovoľuje.

  • Dedičnosť: Hashtable je staršia trieda, dedí z Dictionary, zatiaľ čo HashMap dedí z AbstractMap.

  • Použitie: V moderných aplikáciách je vhodnejšie používať HashMap, a ak je potrebná synchronizácia, použiť ConcurrentHashMap alebo externú synchronizáciu HashMap.

Príklad použitia HashMap:

Map<String, Integer> map = new HashMap<>();
map.put("key", 1);
Integer hodnota = map.get("key");