安全程式設計(十一)- ArrayList,Vector,LinkedList
1.三者介紹
1.1ArrayList
1.1.1簡單介紹:
ArrayList是Java集合中常用的資料結構,繼承自AbstractList,實現了List介面,是一個動態陣列,支援大小的改變,可以靈活插入、刪除元素。跟一般的陣列比起來,速度慢一些!
1.1.2簡單例子:
package cn.nuist.pers.September16; import java.util.ArrayList; public class ArrayListTest { public static void main(String[] args) { ArrayList arrayList = new ArrayList(); for(int i=0;i<10;i++) { arrayList.add(i); //給陣列新增元素 } System.out.println(arrayList); arrayList.remove(5); //移除元素 System.out.println(arrayList); for(int j=0;j<3;j++) { arrayList.add(j); } System.out.println(arrayList); } }
詳細介紹可參考https://www.cnblogs.com/qingchunshiguang/p/6103731.html
1.2Vector
1.2.1簡單介紹
Vector 是向量佇列,它是JDK1.0版本新增的類。繼承於AbstractList,實現了List, RandomAccess, Cloneable這些介面。
Vector 繼承了AbstractList,實現了List;所以,它是一個佇列,支援相關的新增、刪除、修改、遍歷等功能。
Vector 實現了RandmoAccess介面,即提供了隨機訪問功能。RandmoAccess是java中用來被List實現,為List提供快速訪問功能的。在Vector中,我們即可以通過元素的序號快速獲取元素物件;這就是快速隨機訪問。
Vector 實現了Cloneable介面,即實現clone()函式。它能被克隆。
詳細介紹可參考https://www.cnblogs.com/skywang12345/p/3308833.html
1.3LinkedList
1.3.1
LinkedList 是一個繼承於AbstractSequentialList的雙向連結串列。它也可以被當作堆疊、佇列或雙端佇列進行操作。
LinkedList 實現 List 介面,能對它進行佇列操作。
LinkedList 實現 Deque 介面,即能將LinkedList當作雙端佇列使用。
LinkedList 實現了Cloneable介面,即覆蓋了函式clone(),能克隆。
LinkedList 實現java.io.Serializable介面,這意味著LinkedList支援序列化,能通過序列化去傳輸。
LinkedList 是非同步的。
詳細介紹可參考http://www.cnblogs.com/skywang12345/p/3308807.html
2.區別
2.1ArrayList,Vector都是以類似於陣列形式儲存在記憶體之中的,LinkedList則是以連結串列的形式儲存的;
2.2Vector執行緒同步,其餘二者執行緒不同步;
2.3LinkedList適合指定位置插入、刪除,不適合查詢,ArrayList,Vector與之相反。