泛型(Generics)和集合
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
08/05/12 開學的第十三天基礎記錄:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.泛型(Generics):也稱為型別引數,是將型別作為引數傳遞給程式
//java泛型的意義在於保證了集合中元素的型別安全,簡化由型別不同造成的方法膨脹
2.泛型分類:
類泛型:在建立物件時指明型別
public class AClass<E>{...}
public class AClass<E,T>{...}
方法泛型:通常是通過引數的型別指明
public <E> void AMethod(E a){...}
public <E,T> void AMethod(E a){...}
3.注意:泛型定義可以使用繼承關係 但是泛型沒有多型
4.集合:
a.概念:
集合是代表了一組物件的物件,集合中只能存放物件,而不能存放基本資料型別
集合中存放的是物件的引用,而非物件本身,所以長效的集合使用完要置空
b.集合與陣列的區別:
陣列是順序儲存結構的線性表
集合則有各種資料結構可以針對不同型別選擇不同型別的集合
集合封裝了更為豐富的方法,利於重用;而陣列幾乎沒有方法
集合提供了統一的迭代方法
c.分類:
兩大類:
Collection :每個條目(Entry)存放一個物件 ; Map:每個條目存放兩個物件,一個為鍵,一個為值
Collection :
List:元素有序,可以根據序號找到元素,元素可重複,允許出現一個或多個null元素
Set:元素無序,無法根據序號找到元素,元素不可重複,一般只允許一個null元素
Queue:FIFO結構
Map:
Map中任何實現必須保證儲存的鍵不重複,主要兩大類:SortMap ,ConcurrentMap
Hashtable:
HashMap:
TreaMap: