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");