Collection集合學習(二)———List接口與具體實現

二.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

相關文章
相關標籤/搜索