1、vector
vector是最原始的數組 本質是動態數組
Vector<Integer > v1 = new Vector<>() ;不帶參數的構造函數 容量和增量默認爲10 容量指數組的最大存儲量 增量指當元素個數超過當前 Vector的容量時, Vector會自動再增加10的內存空間 達到動態擴容的目的 但是如果只是在當前容量等於元素個數時再增加一個元素時就會浪費9個內存空間 所以會出現帶參數的 Vector數組
Vector<Integer > v1 = new Vector<>(5,2) ;則這個v1對象的最小容量爲5 當容量不夠時會自動增加兩個單位內存空間
主要的方法有:
2、Stack
Stack是棧 其特點是先進後出 在生活中比較形象的例子的是洗碗,先洗好的碗放在最底下用的時候得從最上面的拿起
主要的操作是添加元素至棧頂 取棧頂元素 刪除棧頂元素 要取底下的元素要依次將棧頂的元素刪除後才能將目標元素讀取出來
Stack stack =new Stack ();
主要方法:
stack .push()將元素添加進棧 將新添加的元素變成棧頂元素
stack.peek()讀取棧頂元素但不移除
stack.remove()刪除棧頂元素
3、arrylist
arrylist是單向鏈表 因爲鏈表中每一個元素都是由數據區域和指針區域所組成
其數據區域存儲的是這個元素的值 指針區域存儲的是下一個元素的地址
所以arrylist存指定位置的數據和刪除指定位置數據只需要將指針修改便可以達到目的
常用的方法有add() remove()get() size()
4、總結
數組比如一維整型數組int[] arr; 其特點因爲存儲地址是一串連續的空間 所以訪問數據快
而隨意增加/刪除某個位置的數據則麻煩 而且數組的長度在定義的時候就必須要知道長度
vector 是動態的數組 相對比上面剛提及的數組 它的長度可變 而且增加刪除可以直接調用方法
stack是棧 先進後出的特點在這個類的方法裏都有體現
arrlist是單向鏈表 通過指針可以隨便指向另一個元素 可以方便的增加刪除元素
對內存來說是比較友好的 雖說實際中鏈表訪問連鏈表中的某個元素速度較慢 但是因爲有現成的方法供我們直接使用 所以也通常不會感覺到這個缺點