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

Java 集合框架核心接口體系全景圖解

     編輯:Java 相關知識

集合框架的根基:Iterable 與 Iterator

集合必須可迭代,故所有集合接口繼承 Iterable<T>,其唯一方法:

Iterator<T> iterator()  // 返回迭代器,用於遍歷 T 類型元素

統一返回 Iterator 接口,使所有集合子類均可迭代顯示元素。

根接口:Collection<E>

public interface Collection<E> extends Iterable<E>

定位:集合層次結構根接口,表示一組對象(元素)。

特性:

  • 允許重復元素的(List)與不允許的(Set)並存。
  • 有序(List)與無序(Set)並存。
  • JDK 不提供直接實現,提供更具體子接口(Set、List)實現。
  • 常用於傳遞集合、最大通用性操作。

包/多集合:可能包含重復元素的無序集合,應直接實現此接口。

標準構造方法約定

所有通用實現類(通常通過子接口間接實現)應提供:

  1. 無參構造器:創建空集合。
  2. 單參構造器 Collection(Collection<? extends E> c):創建與參數元素相同的新集合(支持實現類型間轉換復制)。

接口無法強制構造器,但 Java 平台庫所有通用實現均遵守。

「破壞性」方法與異常約定

修改集合的方法(如 add、remove、clear)若集合不支持該操作,拋 UnsupportedOperationException。調用無效時可能但不一定拋出異常(如向不可修改空集合 addAll 可能不拋異常)。

元素限制與異常行為

  • 實現類可限制元素:禁止 null、限制類型。
  • 添加不合格元素 → 未檢查異常(通常 NullPointerException 或 ClassCastException)。
  • 查詢不合格元素 → 可能拋異常,或返回 false(實現定)。
  • 操作不合格元素但不導致插入 → 可能拋異常,可能成功(實現定)。

此類異常在規范中標記為「可選」。

equals 方法在集合規范中的角色

如 contains(Object o) 規范:o==null ? e==null : o.equals(e)。實現可優化(如先比較 hashCode),Object.hashCode() 規范保證哈希碼不等則不等。實現可自由利用基礎 Object 方法行為。

Iterator 接口:取代 Enumeration

public interface Iterator<E>

兩大改進:

  1. 允許調用者在迭代期間通過定義良好的語義從集合移除元素(remove())。
  2. 方法名稱改進(hasNext()/next() 替代 hasMoreElements()/nextElement())。

接口體系速覽表

接口繼承關係核心特點典型實現
Iterable—可迭代標記—
Collectionextends Iterable根接口,基本增刪改查—
Setextends Collection無序、不重復HashSet, TreeSet, LinkedHashSet
Listextends Collection有序、可重復、下標訪問ArrayList, LinkedList, Vector
Queueextends Collection隊列操作(入隊/出隊)PriorityQueue, ArrayDeque
Map—(不繼承 Collection)鍵值對映射HashMap, TreeMap, LinkedHashMap

總結

Java 集合框架以 Iterable/Iterator 為統一遍歷基石,Collection 為根接口派生 Set/List/Queue 三大支系,Map 獨立並行。理解接口契約與實現特性,是選對集合、寫出高效代碼的前提。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved