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 年 9 月)

Vector 和 Hashtable 通过旧式 API 同步每个操作。现代代码通常应对线程封闭的数据使用 ArrayList 或 HashMap,并在需要共享修改时使用专门设计的并发集合。