如果一個程式只包含固定數量的且其生命期都是己知的對象. 那麼這是一個非常簡單的程式。 通常,程式總是根據運行時才知道的某些條件去創建新對象。在此之前,不會知道所需對象的數量,甚至不知道確切的類型。為解決這個普遍的編程問題,需要在任意時刻和任意位置創建任意數量的對象。所以,就不能依靠創建命名的引用來持 ...
如果一個程式只包含固定數量的且其生命期都是己知的對象. 那麼這是一個非常簡單的程式。
通常,程式總是根據運行時才知道的某些條件去創建新對象。在此之前,不會知道所需對象的數量,甚至不知道確切的類型。為解決這個普遍的編程問題,需要在任意時刻和任意位置創建任意數量的對象。所以,就不能依靠創建命名的引用來持有每一個對象,因為你不知道實際上會需要多少這樣的引用。
大多數語言都提供某種方法來解決這個基本問題。Java 有多種方式保存對象(應該說是對象的引用)。例如數組,它是編譯器支持的類型。數組是保存一組對象的最有效的方式,如果你想保存一組基本類型數據,也推薦使用這種方式。但是數組具有固定的尺寸,而在更一般的情況中, 你在寫程式時並不知道將需要多少個對象, 或者是否需要更複雜的方式來存儲對象,因此數組尺寸固定這一限制顯得過於受限了。
Java 實用類庫還提供了一套相當完整的容器類來解決這個問題,其中基本的類型是List、Set、 Queue和Map. 這些對象類型也稱為集合類,但由於 Java 的類庫中使用了Collection這個名詞來指代該類庫的一個特殊子集,所以我使用了範圍更廣的術語 “容器” 稱呼它們。容器提供了完善的方法來保存對象,你可以使用這些工具來解決數量驚人的問題。
容器還有其他一些特性。例如,Set對子每個值都只保存一個對象,Map是允許你將某些對 象與其他一些對象關聯起來的關聯數組,Java容器類都可以自動地調整自己的尺寸。因此,與數組不同,在編程時,你可以將任意數量的對象放置到容器中,並且不需要擔心容器應該設置為多大。
即使在Java中沒有直接的關鍵字支持氣容器類仍舊是可以顯著增強你的編程能力的基本工具。
2017-12-31 內容來自《Java編程思想》