容器包括Map, Collection
Map是key-value键值对结构的集合。
Collection是集合类,包括三类
- Set: 不重复的元素集合
Set子类 | 说明 | 利弊 |
HashSet | 实际使用HashMap实现,HashSet类中全局变量 add方法实现:map.put(元素,PRESENT) | |
TreeSet | 提供有序的set集合,TreeSet支持两种排序方式:
| |
LinkedHashSet | LinkedHashSet存储结构是一个双向链表。存储的元素是有序的 |
- Queue:先进先出的元素集合
- List:可重复的元素集合, 主要类包括:
主要List类 | 说明 | 利弊 |
Vector | 可实现自动增长的对象数组 | 使用了synchronized进行同步,所以是线程安全的 |
ArrayList | ArrayList是实现List接口的,使用数组实现; ArrayList 实现了Cloneable接口,即覆盖了函数clone(),能被克隆; 实现java.io.Serializable接口 | 1. 访问速度快; 2. 删除元素存在元素移动,开销大 3. 线程不安全 |
LinkedList | 以双向链表实现的List,可以作为队列和堆栈使用 | |
CopyOnWriteArrayList | 通过底层数组副本拷贝实现 | 读读共享、写写互斥、读写互斥、写读互斥 |