Java集合框架和泛型機制
1、容器類
JDK API中專門設計用來存儲其他對象的類,一般稱為對象容器類,簡稱容器類,這組類和接口的設計結構也被統稱為集合框架(Collection Framework)。集合框架中容器類的關系如下圖示
主要從兩方面來選擇容器:
(1)存放要求
無序:Set,不能重復
有序:List,允許重復
“key-value”對:Map
(2)讀寫數據效率
Hash:兩者都最高。
Array:讀快改慢。
Linked:讀慢改快。
Tree:加入元素可排序使用。
2、泛型
應用背景:存入容器的對象在取出時需要強制轉換類型,因為對象加入容器時都被轉化為Object類型,而取出時又要轉成實際類型。
在Java中向下類型轉換時容易出現ClassCastException的異常,這時應當盡量避免。有什么辦法可以讓裝入容器中的數據保存自己的類型而不被轉化為Object對象呢,這就需要用到JDK5.0支持的新功能——Java的泛型。
定義:泛型只是編譯時的概念,是供編譯器進行語法檢查用的。所謂泛型,就是在定義(類型的定義,方法的定義,形式參數的定義,成員變量的定義等等)的時候,指定它為通用類型,也就是數據類型可以是任意的類型,如List<?> list = null,具體調用時,要將通用類型轉換成指定的類型。泛型提高了大型程序的類型安全和可維護性。
目的:
努力將運行時異常轉換成編譯時的問題,減少運行時異常數量(提高了編譯器的能力)。
解決模版編程的問題。