分类
集合
Java基础
2026-08-01
3

集合框架总览

Java集合主要分为两大体系:

  • Collection(单列集合,存单个对象)
    • List(有序、可重复)
    • Set(无序、不可重复)
    • Queue / Deque(队列、双端队列)
  • Map(双列集合,存键值对)

List接口

  • ArrayList
    • 底层结构:动态数组
    • 特点:查询快、增删慢(中间位置)、线程不安全
    • 适用场景:频繁随机访问,末尾增删
  • LinkedList
    • 底层结构:双向链表
    • 特点:增删快(两端/中间)、查询慢、线程不安全
    • 适用场景:频繁插入删除,做队列/栈
  • Vector
    • 底层结构:动态数组
    • 特点:方法同步(线程安全),性能差
    • 适用场景:几乎不用,替代为 CopyOnWriteArrayList 或手动同步

关键点:ArrayList 默认容量 10,扩容为 1.5 倍

Set接口

  • HashSet
    • 底层结构:哈希表(HashMap)
    • 特点:O(1) 增删改查,无序
    • 注意:依赖 hashCode() + equals()
  • LinkedHashSet
    • 底层结构:哈希表 + 链表
    • 特点:插入顺序遍历
    • 注意: 比 HashSet 略慢
  • TreeSet
    • 底层结构:红黑树(NavigableMap)
    • 特点:有序(自然/定制排序),O(log n)
    • 注意:元素必须可比

Queue/Deque接口

  • PriorityQueue
    • 底层结构:优先堆(数组)
    • 特点:按优先级出队,非 FIFO
    • 场景:任务调度、TopK
  • ArrayDeque
    • 底层结构:循环数组
    • 特点:双端队列,比 LinkedList 做栈/队列更快
    • 场景:栈、队列、双端操作
  • LinkedList
    • 底层结构:链表
    • 特点:也实现 Deque
    • 场景:任务调度、栈、队列、双端操作

Map接口

  • HashMap
    • 底层结构:哈希表(数组+链表/红黑树)
    • 特点:O(1),无序,允许 null key/value
    • 注意:最常用,非线程安全
  • LinkedHashMap
    • 底层结构:哈希表 + 双向链表
    • 特点:插入顺序或访问顺序遍历
    • 注意:可做 LRU 缓存
  • TreeMap
    • 底层结构:红黑树
    • 特点:有序(按 key),O(log n)
    • 注意:key 必须可比
  • Hashtable
    • 底层结构:哈希表
    • 特点:线程安全,不允许 null
    • 注意:不推荐,用 ConcurrentHashMap
  • ConcurrentHashMap(JUC)
    • 底层结构:分段锁/CAS
    • 特点:高并发安全,性能好
    • 注意:并发必选

关键点:HashMap 扩容因子 0.75,链表长度 ≥8 且数组 ≥64 转红黑树

并发集合(java.util.concurrent)

  • ConcurrentHashMap
  • CopyOnWriteArrayList:读多写少,写时复制
  • CopyOnWriteArraySet
  • ConcurrentLinkedQueue:无界非阻塞队列
  • BlockingQueue 系列(ArrayBlockingQueue、LinkedBlockingQueue、PriorityBlockingQueue)
目录
统计
22
分类
70
文档
2
坚持