集合其實和陣列有些相似,陣列是將相同資料型態的資料收集起來,而集合是收集一群相關資料,再以特定的類別來處理或存取,舉例來說: TreeSet、LinkedList、HashMap...,雖然說也可以使用一些陣列排序或是一些搜尋的演算法達成相同的目的,但是複雜度通常都蠻高的,直接處理會比較好做。
在java中提供了一套架構叫做Java Collections Framework,這個架構可以分成兩個體系: Collection , Map,Set 及 List 分別繼承 Collection 而 SortedMap 繼承 Map ,注意上述所提的所有的都是屬於集合介面,因此如果要做實作通常都會有不同對應的實作類別,舉例來說: Set 是介面而HashSet是它的實作類別;Map 是介面而HashMap是它的實作類別;List是介面而ArrayList、LinkedList是它的實作類別
集合物件通常有四種特性:
1.排序性:會自動從小排到大。ex:TreeSet,TreeMap
2.循序性:會依照特定的順序。ex:ArrayList,LinkedList
3.唯一性:不允許重複出現。ex:HashSet,TreeSet
4.鑑值對應:key值必須是唯一,而每一個key值只會對應到一個元素。ex:HashMap,TreeMap
由於集合的種類實在是太多,因此我不想每個都實作,以下是以Map來簡單練習: