线程不安全的集合:
9.3.1 链表
数组的开销:
Java 中的链表都是双向链表:
删除一个元素:
并发修改集合异常:
- ConcurrentModificationException
9.3.2 数组列表
- ArrayList 封装了一个动态再分配的对象数组
- Vector 是线程安全的
9.3.3 散列集
装填因子 (load factor)
9.3.4 树集
TreeSet 是有序的.
- 使用红黑树实现
将元素添加到 TreeSet 中比 HashSet 慢:
- 添加时要比较
- 再平衡
9.3.5 队列与双端队列
Deque 接口.
实现者:
- ArrayDeque
- LinkedList
9.3.6 优先队列
priority queue
- 用堆实现