1. 程式人生 > >ArrayList和List

ArrayList和List

ArrayList和LinkList的區別: 1.ArrayList是實現了基於動態陣列的資料結構,LinkedList基於連結串列的資料結構。 2.對於隨機訪問get和set,ArrayList覺得優於LinkedList,因為LinkedList要移動指標。 3.對於新增和刪除操作add和remove,LinedList比較佔優勢,因為ArrayList要移動資料。 4.ArrayList 類(動態陣列)的使用條件:當我們不知道到底有多少個數據元素的時候,就可使用ArrayList;如果知道資料集合有多少個元素,就用陣列。 5.ArrayList類支援3個構造方法。 Arraylist() 這個構造方法構造了一個空的連結串列。 ArrayList(Collection<? extends E> c) 這個構造方法構造了一個包含指定元素集合的連結串列,注意,這裡的字元E是一個標記,用來表示集合中元素的型別。至於具體是什麼型別,需要你在使用這個構造方法的時候來指定。ArrayList(int initialCapacity)這是第三個構造方法,構造了一個指定大小但內容為空的連結串列。initialCapacity引數就是初始容量大小。 例如:ArrayList list = new ArrayList();(建立一個String型別的空的陣列連結串列) ArrayList list = new ArrayList(7);(建立一個指定容量的陣列連結串列) 6.ArrayList的成員方法: 增加元素到連結串列中 boolean add(Element e)增加指定元素到連結串列尾部. void add(int index, Element e)增加指定元素到連結串列指定位置.從連結串列中刪除元素 void clear()從連結串列中刪除所有元素.E remove(int index)刪除連結串列中指定位置的元素. protected void removeRange(int start, int end)刪除連結串列中從某一個位置開始到某一個位置結束的元素獲取連結串列中的元素E get(int index) 獲取連結串列中指定位置處的元素. Object[] toArray()獲取一個數組,陣列中所有元素是連結串列中的元素.(即將連結串列轉換為一個數組) 修改某個元素E set(int index, E element)將連結串列中指定位置上的元素替換成新元素。 搜尋元素boolean contains(Object o) 如果連結串列包含指定元素,返回true. int indexOf(Object o)返回元素在連結串列中第一次出現的位置,如果返回-1,表示連結串列中沒有這個元素。 int lastIndexOf(Object o)返回元素在連結串列中最後一次出現的位置,如果返回-1,表示連結串列中沒有這個元素。 檢查連結串列是否為空boolean isEmpty() 返回true表示連結串列中沒有任何元素. 獲取連結串列大小int size()返回連結串列長度(連結串列包含元素的個數). 4.迭代器的用法: 迭代器的格式: Iterator it=g.iterator(); //用迭代器進行遍歷ArrayList集合 while(it.hasNext()) { this.addGoods(it.next()); } 迭代器在迭代期間可以從集合中移除元素。