Java API 提供收藏架構(Collection Framework),內含眾多寫好的記憶體容器,即資料結構。
收藏架構的容器支援泛型,可儲存任意物件當元素。
架構當中,介面負責制定容器操作的方法規格,類別負責實作眾多介面規格。
收藏介面是整個架構的根介面,此容器模擬一個收納袋(bag)或多值集合(multiset)的運作,
值可重複,無位置概念,但可詢問是否包含某元素。如果想列舉內容,可取得容器的迭代器,進行元素的列舉。
以下摘要幾種常用的容器介面,及其實作類別。
A.介面
Collection 收藏: 放個別物件, 可重複放,無位置概念,無排序
List 清單: 放個別物件, 可重複放,任意位置概念,無排序
Queue 佇列: 放個別物件, 可重複放,頭位置概念,無排序
Deque 佇列: 放個別物件, 可重複放,頭尾概念,無排序
Set 集合: 放個別物件,不可重複放,無位置概念,無排序
SortedSet 有序集合: 放個別物件,不可重複放,有頭尾概念,有排序
Map 映射: 放成對物件,不可重複放,無位置概念,無排序
SortedMap 有序映射: 放成對物件,不可重複放,有頭尾概念,有排序
B.類別
Collection: Vector,Stack,ArrayList,ArrayBlockingQueue,
LinkedList,PriorityQueue,HashSet,TreeSet,...
List: Vector,Stack,ArrayList,LinkedList,...
Queue: LinkedList,PriorityQueue,ArrayBlockingQueue,...
Deque: ArrayDeque,LinkedList,LinkedBlockingDeque,...
Set: HashSet,TreeSet,LinkedHashSet,...
SortedSet: TreeSet,...
Map: HashMap,TreeMap,HashTable,Properties,...
SortedMap: TreeMap,...
註: Vector (向量) 和 ArrayList (陣列清單) ,兩者差異在前者支援多緒安全性,後者無
HashTable (雜湊表) 和 HashMap (雜湊映射), 兩者差異也在前者支援多緒安全性,後者無
HashTable (雜湊表) 和 Properties (屬性表),兩者差異在後者多了檔案輸出入功能
C.收藏架構圖 (介面方法區分唯讀及讀寫兩類)
Summary of Java Collection Framework
訂閱:
張貼留言 (Atom)
Linked Lists from C to Java
「 C Pointer Concepts in Java 」一文提到 Java 沒有指標型別 (pointer type) ,但有參照型別 (reference type) 的設計。在遇到須要處理鏈結清單 (linked list)、圖形 (graph) 等資料結構時,Java ...

沒有留言:
張貼留言