Collections Средний

От устаревших синхронизированных коллекций к современным альтернативам

Замените Vector и Hashtable коллекциями, выбранными с учётом реальных требований к изменяемости и конкурентному доступу.

✕ 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);
Заметили проблему в этом коде? Сообщите нам.
🎯

Осознанная конкурентность

Выбранный тип показывает, предполагается ли совместный доступ.

⚡

Лучшая масштабируемость

При обычном доступе ConcurrentHashMap не использует единую блокировку для всей таблицы.

🧩

Современные API

Естественно сочетается с современными операциями коллекций и конкурентных отображений.

Старый подход
Hashtable
Современный подход
ConcurrentHashMap
Начиная с JDK
5
Сложность
Средний
От устаревших синхронизированных коллекций к современным альтернативам
Доступно

Широко доступно начиная с JDK 5 (сентябрь 2004)

Vector и Hashtable синхронизируют каждую операцию через устаревшие API. В современном коде для данных, ограниченных одним потоком, обычно следует использовать ArrayList или HashMap, а когда требуется совместное изменение из нескольких потоков — специализированные конкурентные коллекции.