1.ArrayList
ArrayList是數(shù)組結構。默認大小10奄侠,容量不足時需動態(tài)擴容為原來的1.5倍
它的特別是查詢快钝吮,增刪慢藻治。
物理上連續(xù)碘勉,空間上不連續(xù)
為什么會增刪慢呢?
當add()的時候栋艳,ArrayList需要找到在數(shù)組中的index恰聘,插入進去。然后這個位置及之后的所有index都會整體往后移一位。
當remove()的時候晴叨,需要找到index凿宾,刪除掉。然后這個位置之后所有的index整體往前移動一位兼蕊。
所以速度相對來說比較慢初厚。
當ArrayList數(shù)據(jù)全部刪除的時候,是從最后一個元素開始向前刪除 的孙技。
2.LinkList
LinkList是雙向鏈表結構产禾。
它的特點是查詢慢,增刪快牵啦。
物理上不連續(xù)亚情,空間上連續(xù)。
就像鎖鏈一樣哈雏。每個元素之間循環(huán)雙向鏈表楞件,互相指向。
需要從頭遍歷從而找到對應的數(shù)據(jù)裳瘪,這樣的結果就是查詢起來速度較慢土浸。
當增加或者刪除的時候,只需要改變一下索引位置的元素的指針指向就可以彭羹。所以速度比較著ArrayList()就會快點黄伊。
? 故對于順序讀寫多的場景使用ArrayList
? 對于中間增刪多的場景使用LinkedList