類集概述
1、爲什麼使用類集?
如果要保存一組對象:
a、對象數組,缺點數組長度有限制;
b、鏈表,可以完成動態數組操作,全部由開發人員來做,比較麻煩;
c、類集框架解決了上述難題,即類集就是一個動態的對象數組,對一些實現好的數據結構進行了包裝,本身不受對象數組長度的限制。
2、類集框架的特性:
a、高性能;b、允許不同類型的類集以相同的方式和高度互操作方式工作;c、容易擴展和修改
所以類集就是用來保存動態的數組對象,容易擴展和修改。
3、類集框架的主要接口
Collection、List、Set、Map、Iterator、ListIterator、Enumeration、SortedSet、SortMap、Queue、Map.Entry
這些接口本身存在繼承關係,部分接口繼承關係圖
集合的存儲:
以下接口的關係我用框架圖畫出來的,可能有些接口或類沒有涉及進去,大部分基本是這樣的,歡迎指正
A、Collection
Collection接口是單值存放的最大父接口,可以向其中保存多個單值數據。在一般開發中基本上都使用其子接口進行開發。
List:可以存放重複的內容;
Set:不能存放重複的內容,所有的內容靠hashCode()和equals()兩個方法區分;
Queue:隊列接口;
SortedSet:可以對集合中的數據進行排序
B、Map
Map與Collection不同的是,每次操作時一對對象,Map中的每個元素都是使用key->value鍵值對的形式存儲在集合中。
總之,List、Set、Map是這個集合體系中最主要的三個接口。
其中List和Set繼承自Collection接口。
Set不允許元素重複。HashSet和TreeSet是兩個主要的實現類。
List有序且允許元素重複。ArrayList、LinkedList和Vector是三個主要的實現類。
Map也屬於集合系統,但和Collection接口不同。Map是key對value的映射集合,其中key列就是一個集合。key不能重複, 但是value可以重複。HashMap、TreeMap和Hashtable是三個主要的實現類。
SortedSet和SortedMap接口對元素按指定規則排序,SortedMap是對key列進行排序。
注:SortedXx,在Java類集中以sorted開頭的全部屬於排序的接口
集合的輸出:
Iterator、ListIterator、foreach
下文將對各個類集接口和子類的使用,進行詳細的講解