首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 集合框架全景圖:Collection、List、Set、Queue、Deque 核心 API 與實現類對比

     編輯:Java 綜合教學

Java 集合框架全景圖:Collection、List、Set、Queue、Deque 核心 API 與實現類對比

本文系統梳理 JDK 集合框架體系,涵蓋介面繼承關係、核心方法分類、主流實現類特性與線程安全包裝器,適合面試複習與日常查閱。

體系繼承圖

Iterable
 └─ Collection
      ├─ List          → ArrayList, LinkedList, Vector, Stack
      ├─ Set           → HashSet, LinkedHashSet, TreeSet, EnumSet
      └─ Queue         → PriorityQueue, ArrayDeque, LinkedList
           └─ Deque    → ArrayDeque, LinkedBlockingDeque
                └─ BlockingQueue → ArrayBlockingQueue, LinkedBlockingQueue, PriorityBlockingQueue, DelayQueue, SynchronousQueue, LinkedTransferQueue

Collection 核心方法

分類方法
增add(E), addAll(Collection)
刪remove(Object), removeAll(Collection), retainAll(Collection), removeIf(Predicate), clear()
查contains(Object), containsAll(Collection), size(), isEmpty(), toArray(), Collections.max/min
工具iterator(), spliterator(), stream(), parallelStream(), Collections.unmodifiable/synchronized 包裝器

List 介面額外方法

  • 位置操作:add(index, E), remove(index), set(index, E), get(index), indexOf/lastIndexOf, subList(from, to)
  • 排序/交換:sort(Comparator), replaceAll(UnaryOperator), Collections.swap(list, i, j)
  • 迭代器:listIterator() 支援雙向游標與增刪改。

主要實現類特性對比

Queue/Deque/BlockingQueue 體系

  • Queue:FIFO,offer/poll/peek 不拋異常,add/remove/element 拋異常。
  • Deque:雙端隊列,支援棧操作 push/pop/peek,addFirst/Last、offerFirst/Last、pollFirst/Last。
  • BlockingQueue:生產者-消費者模式,put/take 阻塞,offer/poll(timeout) 超時。實現:
    ArrayBlockingQueue(有界數組)、LinkedBlockingQueue(有界鏈表)、PriorityBlockingQueue(優先級)、DelayQueue(延遲)、SynchronousQueue(直接移交)、LinkedTransferQueue(TransferQueue)。

Set 介面與實現

類底層結構線程安全特點
ArrayList動態數組否隨機訪問快,擴容 1.5 倍,適合讀多寫少
LinkedList雙向鏈表否首尾增刪 O(1),實現 Deque/Queue,適合頻繁增刪
Vector動態數組是同步方法,擴容 2 倍,性能較差,已被 Collections.synchronizedList 替代
Stack繼承 Vector是LIFO,push/pop/peek,不建議新代碼使用,改用 ArrayDeque

線程安全包裝器

Collections.synchronizedList(list)
Collections.synchronizedSet(set)
Collections.synchronizedMap(map)
Collections.unmodifiableList(list)  // 只讀視圖

高併發場景建議使用 java.util.concurrent 並發集合(ConcurrentHashMap, CopyOnWriteArrayList 等)。

工具類

  • Collections.sort/binarySearch/reverse/shuffle/fill
  • Arrays.asList/toArray/stream
  • Java 8+ Stream API:collection.stream().filter().map().collect()
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
類底層有序性線程安全適用場景
HashSetHashMap無序否高性能去重
LinkedHashSetLinkedHashMap插入序否保留插入順序
TreeSet紅黑樹自然序/Comparator否有序去重、區間查詢
EnumSet位向量枚舉聲明序否枚舉類型專用,極致性能