Collections Intermedio

Dalle collezioni sincronizzate legacy alle alternative moderne

Sostituisci Vector e Hashtable con collezioni scelte in base alle effettive esigenze di mutabilità e concorrenza.

✕ Legacy synchronized collection
Hashtable<String, Session> sessions = new Hashtable<>();
sessions.put(id, session);
✓ Concurrent Collections API
ConcurrentMap<String, Session> sessions = new ConcurrentHashMap<>();
sessions.put(id, session);
Vedi un problema con questo codice? Faccelo sapere.
🎯

Concorrenza intenzionale

Il tipo scelto documenta se è prevista la condivisione.

⚡

Migliore scalabilità

ConcurrentHashMap evita un unico lock sull'intera tabella per gli accessi normali.

🧩

API moderne

Funziona naturalmente con le attuali operazioni su collezioni e mappe concorrenti.

Approccio Vecchio
Hashtable
Approccio Moderno
ConcurrentHashMap
Dal JDK
5
Difficoltà
Intermedio
Dalle collezioni sincronizzate legacy alle alternative moderne
Disponibile

Ampiamente disponibile dal JDK 5 (settembre 2004)

Vector e Hashtable sincronizzano ogni operazione tramite API legacy. Il codice moderno dovrebbe normalmente usare ArrayList o HashMap per dati confinati a un thread e collezioni concorrenti dedicate quando è necessaria una mutazione condivisa.