二.List接口:數組
一個能夠包含重複元素的Collection,List中的元素不會自動排序,元素順序由添加時的順序決定。安全
具體實現類包括Vector(線程安全的),ArrayList,LinkedList 框架
基於數組的Vector,ArrayList查詢操做較快,而基於雙向鏈表的LinkedList 添加,刪除操做較快函數
1.ArrayList:線程
咱們能夠將其看做是可以自動增加容量的數組,能夠利用 ArrayList 的 toArray()返 回一個數組,而迭代器(Iterator) 給咱們提供了一種通用的方式來訪問集合中的元素。在 Java 中,標準數組是定長的,在數組建立以後,它們不能被加長或縮短,這也就意味着你必須事先知道數組能夠容納多少元素。可是,你直到運行時才能知道須要多大的數組,爲了解決這個問題,類集框架定義了 ArrayList。本質上,ArrayList 是對象引用的一個變長數組,也就是說,ArrayList 可以動態地增長或減少其大小。數組列表以一個原始大小被建立,當超過了它的大小,類集自動增大,當對象被刪除後,數組就能夠縮小。對象
ArrayList 有以下的構造函數排序
–ArrayList( ) 創建一個空的數組列表索引
–ArrayList(Collection c) 創建一個數組列表,該數組列表由類集 c 中的元素初始化接口
–ArrayList(int capacity) 創建一個數組列表,該數組有指定的初始容量(capacity)ci
當使用 ArrayList 時,有時想要得到一個實際的數組,這個數組包含了列表的內容,能夠經過調用方法 toArray()來實現它。下面是幾個爲何可能想將類集轉換成爲數組的緣由, a.對於特定的操做,能夠得到更快的處理時間,b.爲了給方法傳遞數組,而方法沒必要重載去接收類集。Arrays.asList(),返回一個受指定數組支持的固定大小的列表。此方法同 Collection.toArray 一塊兒,充當了基於數組的 API 與基於 collection 的API 之間的橋樑。
2.LinkedList:
LinkedList類是雙向列表,列表中的每一個節點都包含了對前一個和後一個元素的引用.
LinkedList的構造函數以下
–public LinkedList(): ——生成空的鏈表
–public LinkedList(Collection col): 複製構造函數
3.Vector(線程安全):
Vector 有三個構造函數
public Vector(int initialCapacity,int capacityIncrement) Vector 運行時建立一個初始的存儲容量initialCapacity,存儲容量是以capacityIncrement 變量定義的增量增加
public Vector(int initialCapacity) 只建立初始存儲容量
public Vector() 既不指定初始的存儲容量也不指定capacityIncrement。
經常使用方法:
addElement(Object obj) 把組件加到向量尾部,同時大小加1,向量容量比之前大1
insertElementAt(Object obj, int index) 把組件加到所定索引處,此後的內容向後移動1 個單位
setElementAt(Object obj, int index) 把組件加到所定索引處,此處的內容被代替
removeElement(Object obj) 把向量中含有本組件內容移走
removeAllElements() 把向量中全部組件移走,向量大小爲0