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