標籤:style color java 使用 io 資料 for ar
1)java集合架構的階層
2)使用Collection介面定義的公用方法對集合和線性表操作
3)使用Iterator介面遍曆集合
4)使用JDK的增強for迴圈替代迭代Iterator進行集合遍曆
5)熟悉Set介面,瞭解何時及如何使用HashSet,LinkedHashSet或TreeHashSet來儲存元素
6)使用Comparator介面來比較元素
7)熟悉List介面,瞭解何時以及如何使用ArrayList或者LinkedList來儲存元素
8)區分Vector與ArrayList,並瞭解如何使用Vector和Stack
9)使用JDK1.5的一般類型來簡化程式設計
10)理解Collection和Map的區別,知道何時及如何使用HashMap,LinkedHashMap,TreeHashMap來儲存
11)使用Collections類中的靜態方法
12)使用Arrays類中的靜態方法
以上就是java集合架構的內容,如果你對哪一條不熟悉,說明需要好好的看看。
---------------------------------------------------------------------------------------------------------------------------------------------------
java集合架構支援3種類型的集合:規則集(Set),線性表(List),和圖(Map),分別定義在Set,List,Map中。Set執行個體儲存一組互不相同的元素(集合),List執行個體儲存一組順序排列的元素(表),Map儲存一組 對象---關索引值的映射
總的架構如下,非常重要,包含繼承關係,實現的分類,一目瞭然:
Collection介面:
Set介面:
HashSet具體類
LinkedHashSet具體類
TreeSet具體類
List介面:
ArrayList具體類
LinkedList具體類
向量類Vector具體類
Stack具體類
Map介面:
HashMap類
LinkedHashMap類
TreeMap類
---------------------------------------------------------------------------------------------------------------------------------------------------
1)先來說Collection介面,它是處理對象集合的根介面,提供了一些公用方法,size,Iterator,add,remove什麼的
2)Set和List介面都擴充自Collection,Set就是高中數學裡所說的集合,不允許重複,無序。List就像一個表,可以重複,元素在表裡有順序的放著。
3)然後來說Set介面的3種實現:
HashSet的對象必須實現hashCode方法,javaAPI大多數類實現了hashCode方法。
LinkedHashSet實現了對HashSet的擴充,支援規則集內元素的排序,在HashSet中元素是沒有順序的,而在LinkedHashSet中,可以按元素插入集合的順序進行提取
TreeSet保證集中的元素是有序的,有2種方法可以實現對象之間的可比較性:1,添加到TreeSet的對象實現了Comparable介面;2,給規則集的元素指定一個比較子(Comparator)
使用提示:
如果希望按照元素插入集合的順序進行提取元素,用LinkedHashSet,它的元素按添加的順序儲存
如果沒有上述需求,應該用HashSet,它的效率比LinkedHashSet高
LinkedHashSet只是按照添加的的先後順序在儲存時保持順序,要給集合元素添加順序屬性,需要使用TreeSet(集合元素有排序關係)。
4)再來說List的幾種實現
最重要的的當然是ArrayList(不同步)和LinkedList,一個使用數組實現的動態擴充容量的list,一個是鏈式實現的list。
還有就是Vector(同步)類,它除了包含訪問和修改向量的同步方法之外,跟ArrayList一樣。
最後就是Stack類,它繼承自Vector類,,但一般只作為棧的功能來使用,不要去使用Vector裡面的功能
5)Map
Map是映射,跟前面的Set和List有本質的區別。
散列圖HashMap,鏈式散列圖LinkedHashMap,樹形圖TreeHashMap是映射的3種實現,從名字上來說,有了上述Set的3種實現的分析,這個也是類似的。
HashMap:效率高
LikedHashMap:按照添加順序儲存,可以按添加順序取出
TreeHashMap:排序性
---------------------------------------------------------------------------------------------------------------------------------------------------
Collections類和Arrays類:
Collections類(注意不是Collection):提供了許多靜態方法來管理集合,線性表(大多數是來操作線性表的,比如對線性表複製,排序之類的,參見API)
Arrays類:提供了對數組排序,尋找,比較,填充元素的各種靜態方法。
----------------------------------------------------------------------------------------------------------------------------------------------------
一般類型的使用:
是指在java集合中使用泛型來指定添加元素的類型:
HashMap<K,V> map = new HashMap<K,V>() 其中K,V是兩個類類型,表明這裡只能填充k,v類型的對象
另外集合中只能添加對象,對於基礎資料型別 (Elementary Data Type),會自動轉型為對應的封裝類。
--------------------------------------------------------------------------------------------------------------------------------------------------