Java持有對象的方法——容器
通常,程序總是根據運行時才知道的某些條件去創建新對象。
在此之前,並不知道所需對象的數量,甚至不知道確切的類型。
所以,為解決這個普遍的編程問題,需要在任意時刻和任意位置創建任意數量的對象:
首先,不能依靠創建命名的引用來持有每一個對象了:
MyType aReference;
原因:
不知道實際上會需要多少這樣的引用。大多數語言會提供數組的方式保存對象(應該說是對象的引用)
但是,數組雖然是保存一組對象或者基本類型數據的有效方式,其由於具有固定的尺寸,在一般情況下十分受限。
解決:
Java使用類庫提供了一套相當完整的容器類來解決這個問題。
List、Set、Queue、Map
註意,這些對象類型也稱為集集合類,但是由於Java的類庫中使用了Collection這個名字來指代該類庫的一個特殊子集,因此使用“容器”來稱呼List等。
容器,提供了完善的方法來保存對象,解決對象數量驚人的問題。比如Set對於每一個值只保存一個對象,Map允許你將某些對象於其他一些對象關聯起來的關聯數組。
Java容器類都可以自動地調整尺寸,因此,並不需要擔心容器應該設置為多大。
容器類,是可以顯著增強你編程能力的基本工具。
基本概念
Java容器類庫的用途:保存對象
A:Collection |
一個獨立元素的序列 List:必須安裝插入順序保存元素 Set:不能有重復元素 Queue:按照排隊規則確定對象產生的順序(一般與被插入的順序相同) |
B:Map |
一組成對的“鍵值對”對象,允許使用鍵來查找值 ArrayLsit:允許使用數字來查找值,從某種意義上,它將數字和對象關聯在一起 映射表:允許使用另一個對象來查找某個對象,被稱為“關聯數組”(因為它將對象與另外一些對象關聯在一起),或者稱為“字典”(因為可以使用鍵對象來查找值對象,就像在字典中使用單詞來定義一樣) |
示例:ArrayList是最基本最可靠的容器
創建一個實例 | |
add()插入對象 | |
get()訪問這些對象 | 此時需要使用索引,就像數組一樣,但不需要方括號 |
size()方法 | 可以知道有多少元素添加了進來,從而不會不小心因索引越界而引發錯誤 |
Java持有對象的方法——容器