< 返回新闻公共列表
					
						
						
集合
						发布时间:2023-06-26 13:59:57
						
						
							
集合
- 集合关系图(展示基本情况)

 - List
 
- 修改为使用Vector, 性能会下降
 - 使用Collections.synchronizedCollection()
 - 直接加锁
 
- ArrayList与Vector的区别;前者线程不安全,扩容为1.5倍;后者线程安全,扩容为2倍
 - Vector是方法级别的锁,而synchronizedCollection是变量级别的锁,一般使用后者,性能会强于Vector
 - LinkedList如何保证线程安全?
 
- 使用Collections.synchronizedList();
 
- Collections方法本质上是对基础对象的增强,属于设计模式中装饰者模式的使用
 
| 对象名称 | 具体实现 | 线程是否安全 | 
| ArrayList | 动态数组,随机访问 | 不安全 | 
| LinkedList | 双向链表 | 不安全 | 
| Vector | 动态数组 | 安全 | 
- Collections.synchronizedSet()
 
| 对象名称 | 具体实现 | 线程是否安全 | 是否有序 | 
| TreeSet | 基于Map | 不安全 | 有 | 
| HashSet | 基于HashMap | 不安全 | 无 | 
| LinkedHashSet | 双向链表 | 不安全 | 有 | 
| 对象名称 | 具体实现 | 线程是否安全 | 
| LinkedList | 基于链表 | 不安全 | 
| PriorityQueue | 基于堆 | 不安全 |