天天看點

各種數值集合的類型(Array、ArrayList、Hashtable、List<T>)

主要有:1、數組array    2、arraylist    3、hashtable    

4、泛型集合list<t>

1、array

數組的特點是存儲的類型統一,長度固定。

在我們一開始聲明數組的時候就得确定他的長度,堆記憶體就要配置設定相應大小的記憶體空間。是以比較靜态,不靈活。

2、解決array的缺點,出現了arraylist類型

arraylist的長度是動态變化的,随着我們add的對象的增加,他的數量(count)逐一增加,他的容量(capacity)成倍(2的指數倍)的增加。同時他存儲的對象類型是object類型,即對存儲的類型沒有任何限制。解決了array的兩個不足。

可惜的是,此時出現了一個問題:當我們檢查一個arraylist中是否包含某一個對象時,我們需要周遊整個arraylist。效率極其低下。so

sad。

3、解決arraylist的缺點,出現了hashtable

hashtable存儲的對象同樣是object類型,so友善。但是hashtable中的對象的索引(index)是我們自己定義的。例如我們在增加一個成員的時候是這樣的hashtable.add(person.name,person)

是以,hashtable中的鍵值(即索引)不能是一樣的。

 4、泛型集合list<t>

上面的arraylist存儲的是object類型有帶來一個麻煩,就是當我們取出來使用的時候必須強轉一下才能繼續使用,是以出現了list<t>。<t>輸入類型,如int、string等等。t是什麼類型就必須添加什麼類型,這樣當我們取出來的時候就不需要強轉了。

list<int>的toarray()方法的結果是輸出一個int[]的數組。