1. 程式人生 > >安全程式設計(十一)- ArrayList,Vector,LinkedList

安全程式設計(十一)- 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與之相反。