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

Java集合框架中的線性表、堆疊與佇列ADT詳解

     編輯:J2EE

抽象資料型別(ADT)將資料結構的操作介面與實現分離。Java Collections Framework 提供完整的線性表、堆疊、佇列實現。

核心介面體系

  • `Collection`:根介面,定義 `add`、`remove`、`iterator()` 等基本操作
  • `List`:有序、可重複,支援索引存取(`get`、`set`、`add(index, e)`)
  • `ListIterator`:雙向游標,支援 `hasPrevious()`、`previous()`、`add()`、`set()`

兩大 List 實現比較

特性ArrayListLinkedList
底層結構動態陣列雙向鏈表
隨機存取O(1)O(n)
頭尾增刪O(n)O(1)
記憶體開銷低高(節點物件)

堆疊與佇列的正規寫法

// 堆疊 (LIFO)
Deque stack = new ArrayDeque<>();
stack.push(1); int top = stack.pop();

// 佇列 (FIFO)
Queue queue = new LinkedList<>();
queue.offer("a"); String head = queue.poll();

不建議繼承 `Stack` 或 `Vector`(已過時、同步化開銷大)。`ArrayDeque` 同時支援雙端操作,效能優於 `LinkedList`。

ADT 設計精髓

介面不變、實現可換。業務邏輯依賴 `List` 介面而非具體類別,日後可從 `ArrayList` 平滑遷移至 `LinkedList` 或自訂實現,無須修改呼叫端代碼。

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