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

Java 多態機制與集合框架核心體系

     編輯:Java 相關知識

多態是面向對象的靈魂,集合框架是日常開發的利器。本文系統梳理編譯時/運行時多態差異、集合繼承體系、迭代器模式、工具類區別。

多態的兩種形態

類型別名實現機制綁定時機示例
編譯時多態靜態多態/重載方法簽名不同(參數類型/個數/順序)編譯期print(int) vs print(String)
運行時多態動態多態/重寫子類覆寫父類方法,父類引用指向子類對象運行期Animal a = new Cat(); a.sound()

運行時多態三要素

  1. 繼承: 子類 extends 父類 / implements 接口
  2. 重寫: 方法簽名相同,@Override 註解驗證
  3. 向上轉型: 父類引用 = new 子類()

核心價值

  • 開閉原則: 新增子類無需修改調用端代碼
  • 接口編程: 面向抽象而非具體實現,降低耦合
  • 插件化架構: SPI、策略模式、責任鏈均依賴多態

集合框架繼承體系

Collection (I)
 ├─ List (I)          → 有序、可重複
 │   ├─ ArrayList      → 動態數組,隨機訪問快
 │   ├─ LinkedList     → 雙向鏈表,首尾增刪快
 │   └─ Vector/Stack   → 同步、歷史遺留
 ├─ Set (I)           → 無序、不可重複
 │   ├─ HashSet        → HashMap 底層,O(1)
 │   ├─ LinkedHashSet  → 維護插入順序
 │   └─ TreeSet        → 紅黑樹,有序 O(log n)
 └─ Queue (I)         → 佇列語義
     ├─ PriorityQueue  → 堆,優先級排序
     └─ ArrayDeque     → 雙端佇列,棧/佇列雙役

Map (I)               → 鍵值對,Key 唯一
 ├─ HashMap           → 數組+鏈表/紅黑樹,O(1)
 ├─ LinkedHashMap     → 維護插入/訪問順序
 ├─ TreeMap           → 紅黑樹,Key 有序
 ├─ Hashtable         → 同步、歷史遺留
 └─ ConcurrentHashMap → 分段鎖/CAS,高併發

Collection vs Collections

名稱類型角色
Collection接口集合層級根接口,定義 add/remove/iterator 等
Collections工具類靜態方法:sort、binarySearch、synchronizedList、unmodifiableList 等

迭代器模式

  • 角色: 統一遍歷接口,屏蔽底層數據結構差異
  • 核心方法: hasNext(), next(), remove(), forEachRemaining() (JDK8)
  • 快速失效: 遍歷過程中結構性修改拋 ConcurrentModificationException
  • 使用場景: 通用算法(如統一導出、序列化)、切換實現無需改遍歷代碼

數組 vs 集合

  • 數組:固定長度、基本類型支援、隨機訪問 O(1)、內存緊湊
  • 集合:動態擴容、僅存對象引用、豐富 API、泛型類型安全
  • 轉換:Arrays.asList()、list.toArray()、Stream API 互通
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved