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