Java集合框架与线程安全深度解析
第一章 集合框架基础与线程安全概述
1.1 Java集合框架体系
Java集合框架主要分为两大分支:
Collection接口系:List、Set、Queue
Map接口系:HashMap、TreeMap等
java
Copy Code
// 典型集合类继承关系示例
public class CollectionHierarchy {
public static void main(String[] args) {
// List系
List<String> arrayList = new ArrayList<>();
List<String> vector = new Vector<>();
List<String> linkedList = new LinkedList<>();
// Set系
Set<String> hashSet = new HashSet<>();
Set<String> treeSet = new TreeSet<>();
// Map系
Map<String, Integer> hashMap = new HashMap<>();
Map<String, Integer> hashtable = new Hashtable<>();
}
}
1.2 线程安全定义与级别
集合线程安全分为三个级别:
绝对线程安全:所有操作原子性(如Hashtable)
相对线程安全:单操作原子性(如Collections.synchronizedList)
非线程安全:无同步措施(如ArrayList)
第二章 传统线程安全集合
2.1 Vector与Hashtable
java
Copy Code
public class LegacySafeCollections {
public static void main(String[] args) throws InterruptedException {
Vector<Integer> vector = new Vector<>();
Hashtable<String, Integer> table = new Hashtable<>();
// 多线程测试
Thread t1 = new Thread(() -> {
for (int i = 0; i < 1000; i++) {
vector.add(i);
table.put("key-" + i, i);
}
});
Thread t2 = new Thread(() -> {
for (int i = 1000; i < 2000; i++) {
vector.add(i);
table.put("key-" + i, i);
}
});
t1.start();
t2.start();
t1.join();
t2.join();
System.out.pri