2017年12月13日 星期三

Summary of Java Collection Framework

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.收藏架構圖 (介面方法區分唯讀及讀寫兩類)

沒有留言: