主要有: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[]的數組。