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

我的 Java 之旅 第五課:集合框架詳解

     編輯:Java 相關知識

集合接口體系

  • Iterable<E>:實現後可成為「foreach」語句目標。
  • Collection<E>:繼承 Iterable,是集合層次結構根接口,基本方法 add、iterator,另有 size、isEmpty、contains 等。AbstractCollection 提供了基礎實現。
  • Iterator<E>:替代 Enumeration,包含 next、hasNext、remove 三個方法。

具體集合實現

集合類圖

以 Map 結尾的實現了 Map 接口,其餘實現 Collection 接口。

★ ArrayList - 數組列表

實現 List 接口。另一個動態數組 Vector 方法同步,ArrayList 非同步,無需同步時優先用 ArrayList 節省資源。數組中間插入/刪除需移動後續元素,代價大。

★ LinkedList - 鏈表

實現 List 接口,底層為雙向鏈表。刪除/插入只需更新鄰近節點引用。但不支持快速隨機訪問,按索引查找需從頭遍歷。

★ HashSet - 散列集

基於散列表(鏈表數組)實現 Set 接口,保證元素唯一(通過 equals 判斷)。不關心順序時使用,查找快。

★ TreeSet - 樹集

有序集合,紅黑樹結構,添加元素自動排序。需排序時使用,否則用 HashSet 節省開銷。可傳入 Comparator 定製排序。

★ 隊列與雙端隊列

  • Queue:尾部添加,頭部刪除。
  • Deque:雙端隊列,頭尾均可增刪,由 ArrayDeque 和 LinkedList 實現。
  • PriorityQueue:優先級隊列,堆結構,元素按優先級檢索,適合任務調度。

★ 映射表

存儲鍵/值對,常用 HashMap(無序)和 TreeMap(有序)。集合框架提供三個視圖:keySet、values、entrySet。

★ 專用集合與映射

  • WeakHashMap:自動清理長期存活映射中無用值。
  • LinkedHashSet/Map:記住插入順序;訪問順序模式可實現 LRU 緩存。
  • EnumSet/Map:枚舉類型專用,高效。
  • IdentityHashMap:以 == 而非 equals 比較鍵,用於追蹤對象遍歷狀態。

集合框架總結

集合框架

核心接口:Collection、Map。List 有序,Set 拒絕重復。SortedSet/Map 暴露比較器,NavigableSet/Map(Java 6+)增加查找遍歷方法。

遺留集合類

  • Hashtable:同步版 HashMap。
  • Enumeration:早期遍歷接口,類似 Iterator。
  • Properties:字符串鍵值對,可存檔/讀檔,帶默認表。
  • Stack:繼承 Vector。
  • BitSet:位集合。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved