抽象資料型態(ADT)僅定義「資料型態」與「可執行操作」,隱藏實作細節。Java 以 interface 定義操作契約,類別實作介面即可滿足契約,呼叫端不依賴具體實作。
內部可用陣列或鏈結串列實作,對外介面不變,利於維護與升級。
Collection:根介面,定義 add、remove、iterator 等基本操作。Iterator:hasNext、next、remove,安全遍歷與移除。AbstractCollection:提供除 iterator/size 外的預設實作。List 繼承 Collection,允許重複元素,支援索引操作(get、set、add(index, e))。ListIterator:雙向遍歷,支援修改。ArrayList(動態陣列,隨機存取快)、LinkedList(雙向鏈結,頭尾增刪快,可作 Stack/Queue)。ListIterator iter = aList.listIterator(aList.size());
while (iter.hasPrevious())
System.out.println(iter.previous().toString());
LinkedList queue = new LinkedList(coll);
queue.addFirst(elem); // 入隊
Object e = queue.removeLast(); // 出隊
LinkedList stack = new LinkedList(coll);
stack.addFirst(elem); // push
Object e = stack.removeFirst(); // pop
ADT 讓實作細節可演進而不影響呼叫端。Collections Framework 提供豐富介面與實作,助您建構彈性、可維護的資料結構。