1. 程式人生 > >java中ArrayList和LinkedList使用注意事項

java中ArrayList和LinkedList使用注意事項

1. ArrayList和LinkedList的訪問方式

由於ArrayList實現了RandomAccess訪問方式所以在迴圈讀取的時候我們採用下標的方式訪問。

如果我們使用foreach方式訪問(即:偽碼)

for(Object obj : ArrayList){

System.out.println(obj);

}

以上訪問方式會採用Iterator的方式訪問。Iterator採用的方式是記住相鄰元素的位置,然後依次讀取訪問。

這樣就明顯就與RandomAccess相悖,所謂RandomAccess就是可以隨機獲取指定元素位置的資料。

2.LinkedList本來就是列表的資料結構,所以元素與元素之間本來就有關聯關係。所以訪問時,我們可以使用迭代的方式訪問最好不過了。

ps:預設使用get(index),通過閱讀底層程式碼我們發現它是使用查詢的方式獲取指定元素的:就是將整個LinkedList的size除以2,然後與index進行比較

如果大於size/2 則倒序迴圈訪問直到size/2位置查詢指定位置的資料。如果index小於size/2,則順序訪問直到size/2位置找到對應元素。

3.由於ArrayList底層是陣列結構,LinkedList底層是連結串列的資料結構,所以決定了他們更適合用途。

如果涉及到元素的增刪操作比較頻繁時我們使用LinkedList,而涉及到元素的隨機獲取我們使用ArrayList