Collection 是一個集合,可以儲存一個或多於一個元素的集合。
在Java中,有2個interface可以表示集合,分別是Collection interface (java.util.Collection) 和Map interface (java.util.Map)。
現在就集中介紹Collection interface
第一
不變的API,不同Class可以共用相同的API(例如 add(), remove(), contains(), isEmpty(), addAll() 等等)。
第二
減少開發時間,不用重新設計新的collection。
第三
增加程式的速度及質素,由於Collection提供了可靠的數據結構及算法在不同interface。
Set、List與Queue
這三種Interface,可以視為是3種資料結構,各有其不同的特色:
所有類classes (例如ArrayList, LinkedList, Vector等) 都可以透過實作interface來使用interface中的methods。
第一個是Set
是最簡單的Collection資料結構,就是集合。Set 唯一的限制是不允許重覆的物件存在。
Set 常用的實作主要有3個:
• LinkedHashSet
保證裡面元素存放的順序與新增時相同。最適合拿來存放由資料庫中存取的資料集。
• HashSet
讀取特快,但不保證存放元素的順序。
• TreeSet
依物件大小來決定集合裡面的順序。所以存放於TreeSet中元素必需是(實作) Comparable 的物件。有時候當從自料庫中存取的資料必需自行排序時,就會用到。
第二個是List
List比Set多了一個索引編號,而且也允許重覆:
List實作有 ArrayList、LinkedList、Stack等等。
第三種是 Queue
Queue 可以允許先入先出(FIFO / First-In-First-Out)。
即是新加入的元素會在尾部,而移除元素會在頭部開始。
Queue實作有LinkedList、ArrayBlockingQueue、PriorityQueue等等。
另外,在Queue interface之下還有一個Deque interface。
有關Deque interface的介紹,可以看我寫的另一篇文章 - Java - dequeue的介紹及用法