线程不安全的集合:

image.png

image.png

9.3.1 链表

数组的开销:

image.png

Java 中的链表都是双向链表:

image.png

删除一个元素:

image.png

并发修改集合异常:

  • ConcurrentModificationException

image.png

9.3.2 数组列表

  • ArrayList 封装了一个动态再分配的对象数组
  • Vector 是线程安全的

9.3.3 散列集

image.png

image.png

装填因子 (load factor)

9.3.4 树集

TreeSet 是有序的.

  • 使用红黑树实现

将元素添加到 TreeSet 中比 HashSet 慢:

  • 添加时要比较
  • 再平衡

image.png

9.3.5 队列与双端队列

Deque 接口.

实现者:

  • ArrayDeque
  • LinkedList

9.3.6 优先队列

priority queue

  • 用堆实现