集合

简介: 集合

集合

  • 集合关系图(展示基本情况)
  • List
  • ArrayList如何保证线程安全?
  • 修改为使用Vector, 性能会下降
  • 使用Collections.synchronizedCollection()
  • 直接加锁
  • ArrayList与Vector的区别;前者线程不安全,扩容为1.5倍;后者线程安全,扩容为2倍
  • Vector是方法级别的锁,而synchronizedCollection是变量级别的锁,一般使用后者,性能会强于Vector
  • LinkedList如何保证线程安全?
  • 使用Collections.synchronizedList();
  • Collections方法本质上是对基础对象的增强,属于设计模式中装饰者模式的使用
对象名称 具体实现 线程是否安全
ArrayList 动态数组,随机访问 不安全
LinkedList 双向链表 不安全
Vector 动态数组 安全
  • Set
  • 如何保证线程安全:
  • Collections.synchronizedSet()
对象名称 具体实现 线程是否安全 是否有序
TreeSet 基于Map 不安全
HashSet 基于HashMap 不安全
LinkedHashSet 双向链表 不安全
  • Queue
对象名称 具体实现 线程是否安全
LinkedList 基于链表 不安全
PriorityQueue 基于堆 不安全
目录
相关文章
|
3月前
|
存储 Java 索引
JAVASet集合
JAVASet集合
39 0
|
1月前
|
存储 算法 C++
C++中集合的使用
C++中集合的使用
|
3月前
集合
数组的长度不可以发生改变。 但是ArrayList集合的长度是可以随意变化的。 对于ArrayList来说,有一个尖括号代表泛型。 泛型:也就是装在集合当中的所有元素,全都是统一的什么类型。 注意:泛型只能是引用类型,不能是基本类型。 注意事项: 对于ArrayList集合来说,直接打印得到的不是地址值,而是内容。如果内 容是空,得到的是空的中括号:[]
38 0
|
10月前
|
存储 Java 索引
1.9 集合
1.9 集合
31 1
|
索引
集合理解
集合的个人理解笔记 与二叉查找树规律
62 0
16 集合(下)
16 集合(下)
87 0
|
存储 JavaScript 前端开发
集合的实现
集合的实现
集合的实现
|
存储 算法 安全
|
存储 算法 安全
集合总结
集合总结
84 0