Sobes.tech
Junior — Middle

In cosa si differenziano le collezioni HashMap e Hashtable per modalità di implementazione e caratteristiche?

sobes.tech AI

Risposta dell'AI

HashMap e Hashtable sono implementazioni dell'interfaccia Map in Java, ma presentano alcune differenze:

  • Sincronizzazione: Hashtable è sincronizzato (thread-safe), il che lo rende più lento in ambienti multithread. HashMap non è sincronizzato, quindi è più veloce, ma non sicuro per accessi multithread senza sincronizzazione esterna.

  • Permette null: HashMap consente una chiave null e più valori null. Hashtable non consente chiavi null né valori null.

  • Ereditarietà: Hashtable è una classe più vecchia, eredita da Dictionary, mentre HashMap eredita da AbstractMap.

  • Utilizzo: Nelle applicazioni moderne, è preferibile usare HashMap, e per la sincronizzazione, usare ConcurrentHashMap o sincronizzare esternamente HashMap.

Esempio di utilizzo di HashMap:

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