Junior — Middle
Kā atšķiras HashMap un Hashtable kolekcijas pēc realizācijas veida un raksturlielumiem?
sobes.tech AI
Atbilde no AI
HashMap un Hashtable ir Java Map saskarnes realizācijas, bet tiem ir dažas atšķirības:
-
Sinhronizācija: Hashtable ir sinhronizēts (drošs vairāku pavedienu vidē), tāpēc tas ir lēnāks daudzpavedienu vidē. HashMap nav sinhronizēts, tāpēc tas ir ātrāks, bet nav drošs daudzpavedienu piekļuvei bez ārējas sinhronizācijas.
-
Null atļauja: HashMap ļauj vienu null atslēgu un vairākas null vērtības. Hashtable neļauj null atslēgas un null vērtības.
-
Mantošana: Hashtable ir vecāka klase, kas manto no Dictionary, bet HashMap manto no AbstractMap.
-
Izmantošana: Mūsdienu lietojumprogrammās ir ieteicams izmantot HashMap, un, ja nepieciešama sinhronizācija, — ConcurrentHashMap vai ārēja HashMap sinhronizācija.
HashMap piemērs:
Map<String, Integer> map = new HashMap<>();
map.put("key", 1);
Integer vērtība = map.get("key");