Collections Średniozaawansowany

Od przestarzałych synchronizowanych kolekcji do nowoczesnych alternatyw

Zastąp Vector i Hashtable kolekcjami dobranymi do rzeczywistych potrzeb w zakresie mutowalności i współbieżności.

✕ 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);
Widzisz problem z tym kodem? Daj nam znać.
🎯

Świadoma współbieżność

Wybrany typ dokumentuje, czy oczekiwane jest współdzielenie.

⚡

Lepsza skalowalność

ConcurrentHashMap podczas zwykłego dostępu nie blokuje całej tablicy pojedynczą blokadą.

🧩

Nowoczesne API

Naturalnie współpracuje z obecnymi operacjami kolekcji i map współbieżnych.

Stare podejście
Hashtable
Nowoczesne podejście
ConcurrentHashMap
Od JDK
5
Poziom trudności
Średniozaawansowany
Od przestarzałych synchronizowanych kolekcji do nowoczesnych alternatyw
Dostępne

Szeroko dostępne od JDK 5 (wrzesień 2004)

Vector i Hashtable synchronizują każdą operację za pośrednictwem przestarzałych API. Nowoczesny kod powinien zwykle używać ArrayList lub HashMap dla danych ograniczonych do jednego wątku, a specjalizowanych kolekcji współbieżnych, gdy wymagana jest współdzielona modyfikacja.