Sobes.tech
Junior — Middle

Čime se kolekcije HashMap i Hashtable razlikuju po načinu implementacije i karakteristikama?

sobes.tech АИ

Одговор од АИ

HashMap i Hashtable su implementacije interfejsa Map u Javi, ali imaju nekoliko razlika:

  • Sinhronizacija: Hashtable je sinhronizovan (siguran za niti), što ga čini sporijim u višestrukim nitima. HashMap nije sinhronizovan, pa je brži, ali nije siguran za višestruki pristup bez spoljašnje sinhronizacije.

  • Dozvola null: HashMap dozvoljava jedan null ključ i više null vrednosti. Hashtable ne dozvoljava null ključeve i null vrednosti.

  • Nasleđivanje: Hashtable je starija klasa, nasleđuje od Dictionary, dok HashMap nasleđuje od AbstractMap.

  • Upotreba: U savremenim aplikacijama je preporučljivo koristiti HashMap, a u slučaju potrebe za sinhronizacijom — ConcurrentHashMap ili spoljašnju sinhronizaciju HashMap.

Primer korišćenja HashMap:

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